一、Ansible安装部署
需要两台rhel8.2系统的主机,分别命名为westos_ansible,westos_node1
ansible主机需配置好本地镜像后,再为westos_ansible添加epel源
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
dnf repolist
安装ansible
dnf install -y ansible.noarch
查看版本
ansible --version
二、ansible环境配置
添加主机
vim /etc/ansible/hosts
查看添加的主机名单
连接受控主机node1
ansible 192.168.75.142 -m ping -k #执行ansible询问受控主机密码
由于root权限过大,可以在node1新增普通用户
useradd devops
echo westos | passwd --stdin devops
在ansible主机做免密认证
ssh-keygen
ssh-copy-id -i /root/.ssh/id_rsa.pub devops@192.168.75.142
连接试验
ansible 192.168.75.142 -m ping -u devops
尝试新建文档,失败
ansible 192.168.75.142 -m shell -a 'touch /mnt/westodfile' -u devops
原因是由于devops权限过小,node1添加权限
visudo
再次尝试建立新文档
ansible 192.168.75.142 -m shell -a 'touch /mnt/westodfile' -u devops --become -K #指定devops执行命令用sudo
每次输入密码很烦,可以设置免密访问
试验删除建立的文档
ansible 192.168.75.142 -m shell -a 'rm -fr /mnt/westodfile' -u devops --become
三、ansible清单管理
1.指定清单
建立清单
指定清单查看
ansible all -i westos --list
2.单层清单
列出制定组主机
ansible westos1 --list
ansible westos2 --list
## 3.嵌套清单
ansible westos --list
4.主机规格的范围化操作
ansible westos2 --list
查看数量
ansible westos2 --list|wc -l
5.ansible命令指定清单的正则表达式
* ##所有
: ##逻辑或
:& ##逻辑与
:! ##逻辑非
~ ##以关键字开头,执行优先级高
列出所有以192开头的清单或主机
ansible "192*" --list
列出带192或westos的
ansible "192*:westos*" --list
列出既在清单1也在2中的
ansible "westos1&:westos2&" --list
列出在清单1但不在2中的
ansible 'westos1:!westos2' --list
列出以westos或192开头的
ansible '~(westos|192)' --list
五、Ansible配置文件
1.指定清单路径
2.生成py脚本临时文件的位置
3.同时处理受控主机数量
4.每次执行ansible询问用户密码
6.身份认证key删除
当known_hosts被删除后。每次连接ansible主机都会询问是否添加认证key
7.ansible命令运行默认模块
修改默认命令为ping
执行
8.设置默认远程主机用户
修改默认用户为devops
执行
远程主机执行转换用户身份