1.Ansible的安装
安装epel源
yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
dnf list ansible 可以成功列出 进行下一步
下载ansible 需要的 插件 sshpass http://www.rpmfind.net/linux/centos/8-stream/AppStream/x86_64/os/Packages/sshpass-1.09-4.el8.x86_64.rpm
dnf install ansible -y
2.构建Anisble清单
清单就是ansible控制主机的列表/etc/ansible/hosts 全局清单文件直接书写受管主机名或ip,每行一个node1.westos.comnode2.westos.com172.25.254.240ansible 清单中组名称 [-i 清单文件] --list-hostsansible ungrouped --list-hosts 没有分组的 清单ansible all --list-hosts
单层清单
[list1]node1.westos.comnode2.westos.com[list2]node2.westos.com[list3]172.25.254.240嵌套清单
[westos:children]
list1
list3
3.Ansible命令指定清单的正则表达式
* 所有 172.25.254.* westos*: 逻辑或 westos1:linux172.25.254.100:172.25.254.200:& 逻辑与 westos1:&linux 主机即在westos1清单也在linux清单中:! 逻辑非 westos1:!linux 在westos1中不在linux中~ 以关键字开头~(str1|str2) 以条件1或者条件2开头
4.Ansible配置文件参数详解
ansible 清单中组名称 -m 模块 -u remote_user配置文件的分类与优先级/etc/ansible/ansible.cfg 基本配置文件,找不到其他配置文件此文件生效~/.ansible.cfg 用户当前目录中没有ansible.cfg此文件生效./ansible.cfg 优先级最高常用配置参数[default] 基本信息设定inventory= 指定清单路径remote_user= 在受管主机上登陆的用户名称,未指定使用当前用户ask_pass= 是否提示输入SSH密码,如果公钥登陆设定为falselibrary= 库文件存放目录local_tmp= 本机临时命令执行目录remote_tmp= 远程主机临时py命令文件存放目录forks= 默认并发数量host_key_checking= 第一次连接受管主机时是否要输入yes建立host_keysudo_user= 默认sudo用户ask_sudo_pass= 每次在受控主机执行ansible命令时是否询问sudo密码module_name= 默认模块,默认使用command,可以修改为shelllog_path= 日志文件路径[privilege_escalation] 身份信息设定become= 连接后是否自动切换用户become_method= 设定切换用户的方式,通常用sudobecome_user= 在受管主机中切换到的用户,通常为rootbecome_ask_pass 是否需要为become_method提示输入密码,默认为false
5.构建用户级Ansible操作环境 免密认证
创建 用户 westan
su - westan
ssh-keygen 生成密钥
ansible westos -m shell -a 'useradd westan' -u root -k 给 被控主机添加用户
ansible westos -m shell -a 'echo westos|passwd --stdin westan' -u root -kansible westos -m file -a 'path=~/.ssh mode=700 state=directory' -k 创建一个文件 设置权限
ansible westos -m copy -a 'src=~/.ssh/id_rsa.pub dest=~/.ssh/authorized_keys mode=600' -k 复制密钥
修改sudo 让 普通用户有权限
创建.ansible 文件 复制 配置信息
vim ~/.ansible/ansible.cfg
vim ~/.ansible/inventory
免密认证成功