官方查看配置文件设置
http://docs.ansible.com/ansible/latest/intro_configuration.html
1.配置环境变量
export ANSIBLE_SUDO_USER=root
设置环境变量以后,ANSIBLE_SUDO_USER就可以在playbook中直接引用。
2设置.ansible.cfg常用配置参数 ,文件目录:etc/ansible/ansilbe.cfg
·inventory:表示清单inventory文件的位置,资源清单就是一些Ansible需要连接管理的主机列表。
inventory = /etc/ansible/hosts
·labrary:Ansble的操作动作,无论是本地或远程,都使用小段代码来执行,这小段代码称之为模块。liarary参数指向存放Ansible模块的目录。
library = /user/share/ansible
library支持多个目录方式,主要用冒号隔开就可以了。
·forks:设置默认情况下Asible最多可以有多少个进程同时工作,默认是5个
forks = 5
focks 不是越大越好,要根据实际的情况调整
·sudo_user:设置默认执行命令的用户,也可以在playbook中重新设置这个参数
sudo_user = root
·remote_port:指定被管理节点的管理端口,默认是22(SSH)。
remote_port = 22
·host_key_checking:设置是否检查SSH主机的密钥
host_key_checking = False
·timeout:设置SSH连接的超时间隔,单位是秒
timeout=60
·log_path:Ansible默认不记录日志,log_path来指定一个存储Ansible日志的文件。
log_path = /var/log/ansible.log
·poll_interval 异步执行任务的时候多久检查一次任务装填,默认是15次任务
poll_interval =15
·ask_sudo_pass =True 用来控制ansible playbook在执行sudo之前是否询问sudo的密码,默认为No
ask_sudo_pass = no
·ask_pass = True 控制ansible playbook是否自动默认弹出密码
·private_key_file = /root/.ssh/id_rsa 私钥文件存储的文职
3.使用公钥认证
修改home目录下 /.ansible.cfg 或 /etc/ansible/ansible.cfg
host_key_checking = False
或直接在控制主机的操作系统中设置环境变量。
$export ANSIBLE_HOST_KEY_CHECKING=False
4.配置LINUX主机SSH无密码访问
为了避免Ansible下发指令时输入目标主机密码,通过证书签名达到SSH无密码。
使用ssh-keygen和ssh-copy-id
控制主机上创建密钥:ssh-keygen -t rsa
一路回车
在/root/.ssh/下生成一对密钥:id_rsa 为私钥,id_rsa.pub 为公钥
下发密钥:控制主机把公钥id_rsa.pub下发到被管节点用户下的.ssh目录并重命名成authorized_keys,且权限值为400
ssh-copy-id [-h | -? | -n] [identity_file] [-p port] [[-o <ssh -o options>] ... ] [user@]hostname
输入以下命令同步公钥到被管节点web1(168.100.100.109)
ssh-copy-id -i /root/.ssh/id_rsa_pub root@168.100.100.109
验证:ssh root@168.100.100.109 能登陆成功
5.ansible排错
查看详细信息 -v -vvv
ansible all -m ping -vvv