linux ansible(三)

ansible 配置详解
3.1 ansible 安装方式
ansible安装常用两种方式,yum安装和pip程序安装

3.1.1 使用 pip(python的包管理模块)安装
需要安装一个python-pip包,安装完成以后,则直接使用pip命令来安装我们的ansible包

[root@localhost ~]$ yum install python-pip
[root@localhost ~]$ pip install ansible
 

3.1.2 使用 yum 安装
需要先安装一个epel-release包,然后再安装 ansible 即可。

[root@localhost ~]$ yum -y install epel-release
[root@localhost ~]$ yum -y install ansible
 

3.2 ansible 程序结构
安装目录如下(yum安装):

配置文件目录:/etc/ansible/
执行文件目录:/usr/bin/
Lib库依赖目录:/usr/lib/pythonX.X/site-packages/ansible/
Help文档目录:/usr/share/doc/ansible-X.X.X/
Man文档目录:/usr/share/man/man1/

3.3 ansible配置文件

inventory = /etc/ansible/hosts		  #这个参数表示资源清单inventory文件的位置
library = /usr/share/ansible		 #指向存放Ansible模块的目录,支持多个目录方式,只要用冒号(:)隔开就可以
forks = 5		                      #并发连接数,默认为5
sudo_user = root		              #设置默认执行命令的用户
remote_port = 22		              #指定连接被管节点的管理端口,默认为22端口,建议修改,能够更加安全
ask_pass = True                #是否需要密码
host_key_checking = False		     #设置是否检查SSH主机的密钥,值为True/False。关闭后第一次连接不会提示配置实例
timeout = 60		                #设置SSH连接的超时时间,单位为秒
log_path = /var/log/ansible.log		#指定一个存储ansible日志的文件(默认不记录日志)

3.4 ansuble主机清单
在配置文件中,我们提到了资源清单,这个清单就是我们的主机清单,里面保存的是一些 ansible 需要连接管理的主机列表。在/etc/ansible/hosts文件内

直接指明主机地址或主机名:

[root@localhost ~]$ vim /etc/ansible/hosts 
## green.example.com#
# blue.example.com#
# 192.168.100.1
# 192.168.100.10
 

定义一个主机组[组名]把地址或主机名加进去

[root@localhost ~]$ vim /etc/ansible/hosts 
[mysql_test]
192.168.253.159 ansible_user=root ansible_port=22 ansible_ssh_pass=root
192.168.253.160 ansible_user=root ansible_port=22 ansible_ssh_pass=root
192.168.253.153 ansible_user=root ansible_port=22 ansible_ssh_pass=root
 

还可以使用密钥对配置免密登录
服务端生成密钥对

[root@localhost ~]$ ssh-keygen    #一路回车
  • 然后把公钥传到被控端
[root@localhost ~]$ ssh-copy-id [email protected]

 vars变量 :定义主机的内置参数
定义属于整个组的变量

[root@localhost ~]$ vim /etc/ansible/hosts 
[test]
host1
host2

[test:vars]
ntp_server=ntp.atlanta.example.com
proxy=proxy.atlanta.example.com

嵌套定义vars

#编写主机组
[group1]
group1.linux.com
 
[group2]
group2.example.com
 
[group:children]
group1
group2
 
#嵌套变量定义
[group:vars]   ##用var进行标识
user=studen    ##以字典方式定义

你可能感兴趣的:(linux,ansible,运维)