Ansibles使用
安装(centos)
- 使用 yum 安装
需要先安装一个
epel-release
包,然后再安装ansible
即可。
yum install epel-release -y
yum install ansible –y
- 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/
- ansible默认host文件
可以在执行ansible的时候指定host文件路径(-i)
/etc/ansible/hosts
- ansible配置文件查找顺序
ansible与我们其他的服务在这一点上有很大不同,这里的配置文件查找是从多个地方找的,顺序如下:
- 检查环境变量ANSIBLE_CONFIG指向的路径文件(export ANSIBLE_CONFIG=/etc/ansible.cfg);
- ~/.ansible.cfg,检查当前目录下的ansible.cfg配置文件;
- /etc/ansible.cfg检查etc目录的配置文件。
密钥设置
在进行ansible的作业之前还需要对要远程控制的机器做一个免密登录,方便后续直接执行ansible脚本
- 管理机生成密钥对
-t 指定加密的方式,默认为rsa
-f filename指定密钥文件名,不指定提示生成的密钥放在/root/.ssh/id_dsa
ssh-keygen -t dsa -f /root/.ssh/id_dsa
- 查看密钥
# ll /root/.ssh/
总用量 12
-rw------- 1 root root 668 5月 14 2020 id_dsa #生成后的私钥文件
-rw-r--r-- 1 root root 610 5月 14 2020 id_dsa.pub #公钥文件
-rw-r--r-- 1 root root 544 5月 14 2020 known_hosts
- 分发密钥
ssh-copy-id user@192.168.6.103 -p 22
# user 为用户名
# -p 指定端口,有的默认22端口关闭了ssh
使用
- 每次执行ansible的返回的信息,字体颜色解析
黄色:成功执行并伴随着状态的改变
绿色:成功执行并且没有发生状态的改变
红色:执行失败
- ping 模块使用
-i host : -i 指定hosts文件路径,可以不使用
/etc/ansible/hosts
-m ping : -m 指定使用ping模块
slave :为自定义hosts文件中的主机分组名称
ansible slave -i hosts -m ping
- copy 模块的使用
-m copy 指定模块
-a "" 增加参数设置 owner=user 归属者 mode=0640 指定文件的权限
# ansible 主机 -m copy -a "src=源文件 dest=目标主机"
ansible slave -i hosts -m copy -a "src=/temp/ansible-test.txt dest=/home/user/"
- shell 模块使用
直接执行shell指令
-a " " : 为参数设置
ansible slave -i hosts -m shell -a "mv /home/user/cacert.cer /home/user/opt/"