Ansible学习分享(基本)
背景:Teamleader提到一款好用的自动化配置管理工具,于是前去学习实践,有了下面分享。
纲要
一、Ansible简介
二、Ansible准备
2.1 Ansible安装
2.2 设置SSH公钥验证
三、Ansible配置
3.1 Ansible主机清单文件
3.2 Ansible配置文件
四、Ansible基础
4.1 Ad-Hoc Command
4.2Playbook
4.3ansible-playbook常用命令
4.4学习链接
五、Ansible实践:基于Ansible一键批量部署BSTK容器
一、Ansible简介
Ansible是一款的自动化运维工具,基于Python开发,可以实现批量系统配置、批量程序部署、批量运行命令等。被管理的远程服务器不需安装代理,通过Ansible我们可以批量管理服务器。
二、Ansible准备
2.1
Ansible安装
下面仅介绍Ubuntu下Ansible的安装
安装步骤:
1、安装software-properties-common包
sudo
apt-get install software-properties-common
2、添加Ansible源
sudo
apt-add-repository ppa:ansible/ansible
3、刷新系统的包索引
sudo
apt-get update
4、安装Ansible
sudo
apt-get install ansible
2.2
设置SSH公钥验证
设置步骤:
1、创建本地公钥
ssh-keygen
-t rsa
2、添加信任到客户端
ssh-copy-id
-i id_rsa.pub bn@172.16.23.XXX
三、Ansible配置
3.1
Ansible主机清单文件
Ansible
hosts文件默认所在路径/etc/ansible/hosts

p { margin-bottom: 0.25cm; line-height: 120% }
a:link { }
方括号[]中是组名,便于对不同服务器进行分组,组内对应各台服务器的信息。
3.2 Ansible配置文件
Ansible配置文件默认所在路径/etc/ansible/ansible.cfg

主要设置Ansible初始化信息,如日志存放路径、模块、插件等配置信息。日志路径默认在/var/log/ansible.log
p { margin-bottom: 0.25cm; line-height: 120% }
a:link { }
四、 Ansible基础
利用Ansible对远程服务器进行操作主要有两种方法,一是Ad-Hoc Command,Ad-Hoc Command常用于去比较快速完成一些任务,而不需要将这些执行的命令保存下来,属于临时性命令; 二是Playbooks,Playbooks可用于批量部署任务编排,编写完xxx.yml后,只需一个ansible-playbook命令,即可完成整个部署任务。
4.1
Ad-Hoc Command
Ad-Hoc
命令基本语法:
ansible
操作目标 -m
模块名称 -a
模块参数
eg.
将本地目录/home/bn下的test.yml
文件拷贝到远程目录/home/bn
ansible
all -m copy -a “src=/home/bn/test.yml dest=/home/bn”
操作目标可在/etc/ansible/hosts中定义
常用的模块有copy,file,
command, shell, service, setup等等,更多模块介绍,可用ansible-doc
-l查看,具体模块用法,可见官网。
4.2
Playbook
Playbook的格式是YML,由一个或多个plays(常用于对多个不同组操作)组成,每个plays中可以定义roles(任务task),每个task中可由Ad-Hoc
的模块命令+
参数组成
eg.
如下是一个简单的Playbook
p { margin-bottom: 0.25cm; line-height: 120% }
a:link { }
p { margin-bottom: 0.25cm; line-height: 120% }
a:link { }

4.3 ansible-playbook常用命令
1、检查yml文件的语法是否正确
ansible-playbook test.yml --syntax-check
2、检查yml文件中的tasks任务
ansible-playbook test.yml --list-task
3、检查yml文件中的生效主机
ansible-playbook test.yml --list-hosts
4、运行playbook
ansible-playbook test.yml
5、运行playbook里面特定的某个task,从某个task开始运行
ansible-playbook test .yml --start-at-task='XXX'
6、so on 。。。
4.4
学习链接
1、Ansible官网
2、Ansible中文权威指南
3、Ansible:一个配置管理和IT自动化工具
https://linux.cn/article-4215-1.html
五、Ansible实践:基于Ansible一键批量部署BSTK容器
目录结构如下:
p { margin-bottom: 0.25cm; line-height: 120% }
a:link { }

其中test.yml是主playbook,不同分组对应不同plays,如docker.yml,gg.yml。具体实现在/home/docker/Docker/roles/special/tasks/main.yml
p { margin-bottom: 0.25cm; line-height: 120% }
a:link { }

p { margin-bottom: 0.25cm; line-height: 120% }
a:link { }
Ansible学习分享(基本)的更多相关文章
- ansible 学习与实践
title: ansible 学习与实践 date: 2016-05-06 16:17:28 tags: --- ansible 学习与实践 一 介绍 ansible是新出现的运维工具是基于Pytho ...
- ElasticSearch 5学习(7)——分布式集群学习分享2
前面主要学习了ElasticSearch分布式集群的存储过程中集群.节点和分片的知识(ElasticSearch 5学习(6)--分布式集群学习分享1),下面主要分享应对故障的一些实践. 应对故障 前 ...
- ElasticSearch 5学习(6)——分布式集群学习分享1
在使用中我们把文档存入ElasticSearch,但是如果能够了解ElasticSearch内部是如何存储的,将会对我们学习ElasticSearch有很清晰的认识.本文中的所使用的ElasticSe ...
- ansible学习笔记一
ansible学习笔记一 参考博客: ansible学习 - 51CTO博客 一.安装 1 .下载epel源 wget -O /etc/yum.repos.d/epel.repo http://mir ...
- Ansible学习实战手记-你想要知道的可能都在这里了
最近接触了ansible工具,查找了一些资料,也做了一些总结.希望能给刚接触的新手带来一些帮助. 此总结有实际例子,大部分也是从实践中用到才逐一总结的. 当然可能肯定一定会存在一些错误和纰漏,还望大家 ...
- MySQL学习分享--Thread pool实现
基于<MySQL学习分享--Thread pool>对Thread pool架构设计的详细了解,本文主要对Thread pool的实现进行分析,并根据Mariadb和Percona提供的开 ...
- JavaScript Shell学习分享
目录 JavaScript Shell学习分享 简介 安装 使用原因 小结 JavaScript Shell学习分享 简介 JavaScript Shell是由Mozilla提供的综合JavaScri ...
- python 学习分享-paramiko模块
paramiko模块学习分享 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.paramiko支持Linux, Solaris, BS ...
- 有关JSOUP学习分享(一)
其实现在用JSOUP爬虫的也不多了,但是由于最近换公司,做数据爬虫需要用到,就看了下,感觉还是挺好用的,原理什么的感觉和weblogic也差不到哪里去,废话少说,这里就简单的分享下最近接触的干货. J ...
随机推荐
- Day12 _63_获取当前线程对象
给线程起名 * 1. Thread.currentThread(); 可以获取到当前线程对象,出现在哪就是获取哪个线程. * 2. thread.setName(); 给该线程起名字 * 3. thr ...
- HUAWEI防火墙双出口据链路带宽负载分担
组网图形 组网需求 通过配置根据链路带宽负载分担,使流量按照带宽的比例分担到各链路上,保证带宽资源得到充分利用. 如图1所示,企业分别从ISP1和ISP2租用了一条链路,ISP1链路的带宽为100M, ...
- ML.NET 示例:图像分类模型训练-首选API(基于原生TensorFlow迁移学习)
ML.NET 版本 API 类型 状态 应用程序类型 数据类型 场景 机器学习任务 算法 Microsoft.ML 1.5.0 动态API 最新 控制台应用程序和Web应用程序 图片文件 图像分类 基 ...
- VScode+Sublime安装与汉化
两大常用编辑器安装与汉化 想敲代码?工欲善其事,必先利其器,先安装编写代码所需要的工具吧.本期的主角是VScode与Sublime,这是两款比较热门的代码编辑器. 目录: VScode安装与汉化 Su ...
- Backdoor.Zegost木马病毒分析(一)
http://blog.csdn.net/qq1084283172/article/details/50413426 一.样本信息 样本名称:rt55.exe 样本大小: 159288 字节 文件类型 ...
- 神经网络与机器学习 笔记—单神经元解决XOR问题
单神经元解决XOR问题 有两个输入的单个神经元的使用得到的决策边界是输入空间的一条直线.在这条直线的一边的所有的点,神经元输出1:而在这条直线的另一边的点,神经元输出0.在输入空间中,这条直线的位置和 ...
- Portswigger web security academy:Server-side request forgery (SSRF)
Portswigger web security academy:Server-side request forgery (SSRF) 目录 Portswigger web security acad ...
- 学生免费使用JetBrains全家桶
今天又有一个同学来问我申请流程,因此也就趁着这个机会把整个流程简单地记录一下,供大家分享.下面所提及到的学校邮箱以及相关的操作都是以自己学校为准,学校不同可能会稍有不同,大家按自己学校的操作就好. 学 ...
- 电脑提示无法装入/加载SolidWorks DLL文件:sldshellutils如何解决
电脑提示无法装入/加载SolidWorks DLL文件:sldshellutils如何解决 参考资料:http://www.xitongcheng.com/jiaocheng/dnrj_article ...
- [PowerShell] 快速入门, 基本语法, 常用类型, 函数, .NET 互操作
PowerShell 快速入门 开始之前, 我们认定你已经有一定的编程基础, 熟悉 .NET 中的类型与对象. 此文章对于 .NET 开发者来说更简单哦! 在 PowerShell 中, 几乎一切都是 ...