环境
系统环境:<代码> CentOS的Linux版本7.5.1804(核心)代码>
ansible版本:<代码> ansible 2.9.0 代码>
ansible的配置
环境配置
Ansible配置以ini格式存储配置数据,在Ansible中几乎所有配置都可以通过Ansible的剧本或环境变量来重新赋值。在运行Ansible命令时,命令将会按照以下顺序查找配置文件。
(1) <代码> ANSIBLE_CONFIG: 代码>首先,Ansible命令会检查环境变量,及这个环境变量指向的配置文件。
(2) <代码>。/ansible。cfg: 代码>其次,将会检查当前目录下的ansible.cfg配置文件。
(3) <代码> ~/.ansible。cfg: 代码>再次,将会检查当前用户家庭目录下的.ansible.cfg配置文件。
(4) <代码>/etc/ansible/ansible。cfg: 代码>最后,将会检查在用软件包管理工具安装Ansible时自动产生的配置文件。
使用环境变量方式来配置
大多数的Ansible参数可以通过设置带有<代码> ANSIBLE_ 代码>开头的环境变量进行配置,参数名称必须都是大写字母,如下配置:
<代码> export ANSIBLE_SUDO_USER=根代码>
设置了环境变量之后,<代码> ANSIBLE_SUDO_USER> 代码就可以在后续操作中直接引用。
设置ansible.cfg配置参数
Ansible有很多配置参数,以下是几个默认的配置参数:
<代码>库存=/root/ansible/hosts 图书馆=/usr/share/my_modules/叉=5 sudo_user=根 remote_port=22 host_key_checking=False 超时=20 log_path=/var/log/ansible.log 代码>
对上面的参数进行说明:
& lt; 1比;库存:<代码> 代码>该参数表示存货文件的位置,资源清单(库存)就是Ansible需要连接管理的一些主机列表。
& lt; 2比;<代码>库:代码> Ansible的所有操作都使用模块来执行实现,这个图书馆参数就是指向存放Ansible模块的目录。
& lt; 3比;<代码>叉:代码>设置默认情况下Ansible最多能有多少个进程同时工作,默认5个进程并行处理。具体需要设置多少个,可以根据控制端性能和被管理节点的数量来确定。
& lt; 4比;<代码> sudo_user: 代码>设置默认执行命令的用户,也可以在playbo o k中重新设置这个参数。
& lt; 5比;<代码> remote_port: 代码>指定连接被管理节点的管理端口,默认是22日,除非设置了特殊的SSH端口,否则不需要修改此参数。
& lt; 6比;<代码> host_key_checking: 代码>设置是否检查SSH主机的密钥。可以设置为真或假。即SSH的主机再次验证。
& lt; 7比;<代码>超时:代码>设置SSH连接的超时间隔,单位是秒。
& lt; 8比;<代码> log_path: 代码> Ansible默认不记录日志,如果想把Ansible系统的输出记录到日志文件中,需要设置log_path。需要注意,模块将会调用被管节点的(r) syslog来记录,执行Ansible的用户需要有写入日志的权限。
SSH互信配置
将ansible服务器的ssh公钥分发到各被管节点上。
指定ssh公钥生成格式和存放路径:<代码> ssh - keygen rsa - t - f/tmp/temp/id_rsa - n”代码>
ssh公钥分发目标机:<代码> ssh-copy-id root@192.168.246.204 代码>
也可以使用ansible自身来批量添加密钥到被控节点上。使用ansible的authorized_key模块即可。
以下是借助期望工具实现非交互式的年代年代h - co . py - id,免得总是询问远程用户的登录密码。
<代码> #安装 yum安装- y期望代码>
<代码> #编辑期望脚本 猫auto_sshcopyid.exp # !/usr/bin/期望 设置超时10 设置user_hostname lindex $ argv [0] 设置密码lindex $ argv [1] 产卵ssh-copy-id user_hostname美元 预计{ ”(是/否)?” { 发送“是的\ n” 预计“*密码:“{发送" $密码\ n "} } *密码:“{发送" $密码\ n "} } 预计eof 代码>
<代码> #编辑调用期望的sehll脚本 # !/bin/bash #加载系统函数库 。/etc/init.d/functions ip=$ (echo - n " $ (seq - s”、“59 61), 187年“| xargs - d”、“我呼应192.168.246。{}) 密码=八璧摹? 因为我在$ ip 做 ping - c 1美元比;/dev/null 如果[(echo $ ?)情商0美元);/tmp/temp/auto_sshcopyid。exp root@我密码和美元在比;/tmp/temp/a.log/bin/true行动”美元我可以” 其他的 行动”美元我没有!”/bin/false fiAnsible学习笔记——配置Ansible