ansible是一款开源自动化平台,是一个配置管理工具,自动化运维工具,操作方式是通过ssh服务去连接受管主机。
一、Ansible安装
1.使用epel源
软件仓库配置好官方拓展的epel源后直接安装即可
dnf install ansible -y
ansible --viersion ##查看ansible的相关信息,可验证是否安装完成
2.用安装包进行安装
dnf install sshpass-1.06-9.el8.x86_64.rpm
dnf install ansible-2.9.11-1.el8.noarch.rpm ##可解决依赖性
ansible --viersion
?
二、Asnible使用
远程主机:
useradd wy
echo wy | passwd --stdin wy
visudo ##给wy下方所有权限,NOPASSWD 免去sudo的认证
wy ALL=(ALL) NOPASSWD: ALL
控制主机:
vim /etc/ansible/hosts
ansible all --list-hosts
ansible 172.25.254.250 -m ping -u wy -k ##ping 172.25.254.244 -k输入wy的密码,需要ssh密码认证
ssh-keygen ##生成ssh密钥
ssh-copy-id -i /root/.ssh/id_rsa.pub wy@172.25.254.250 ##wy用户加密
ansible 172.25.254.250 -m ping -u wy ##不用-k ssh密码认证
ansible 172.25.254.250 -m shell -a 'touch /mnt/file1' -u wy --become -K ##在172.25.254.244中执行touch /mnt/file1命令 --become使用sudo -K输入sudo认证
ansible 172.25.254.244 -m shell -a 'rm -fr /mnt/file1' -u wy --become ##若wy用户NOPSAAWD 则可不需要-K
总结:当想用主机通过ansible操控远程主机时。首先ansible主机的主机清单里需要有远程主机的ip;其次在远程主机上要对被操控用户进行权利下方;最后在ansible主机上用root用户生成秘钥,并给远程主机上的被操控用户进行加密。如果远程控制执行失败,根据报错检查问题。
三、ansible的主机清单
ansible主机只能操作主机清单里的主机
主机清单的书写(组、范围化、嵌套组)
vim /etc/ansible/hosts
172.25.254.100 ##不属于任何组
[linux] ##linux组
172.25.254.244
172.25.254.144
westos_aa.westos.org ##需要有本地解析
[westos1]
192.168.1.[1:10] ##包含192.168.1.1-192.168.1.10 十个主机 范围化
[westos2]
172.25.254.66
192.168.1.5
[test:children] ##嵌套组:test组包含westos1组和westos2组的内容
westos1
westos2
正则表达式? ?'? '?中的字符可以是组名称、主机ip、主机名称
ansible all --list ##所有
ansible 'westos1' --list
ansible 'test' --list
ansible 'westos*' --list ##包含westos
ansible ungrouped --list ##不属于任何组的主机
ansible '192*' --list
ansible 'linux:&westos*' --list ##且
ansible 'linux:192*' --list ##或
ansible 'westos1:!westos2' --list ##非
ansible '~172' --list ##以172开头
ansible '~(172|westos)' --list ##或
效果:
?
四、常用配置参数
[defaults] ##基本信息设定
inventory= ##指定清单路径
remote_user= ##在受管主机上登陆的用户名称,未指定使用当前用户
ask_pass= ##是否提示输入SSH密码,如果公钥登陆设定为false
library= ##库文件存放目录
local_tmp= ##本机临时命令执行目录
remote_tmp= ##远程主机临时py命令文件存放目录
forks= ##默认并发数量
host_key_checking= ##第一次连接受管主机时是否要输入yes建立host_key
sudo_user= ##默认sudo用户
ask_sudo_pass= ##每次在受控主机执行ansible命令时是否询问sudo密码
module_name= ##默认模块,默认使用command,可以修改为shell
log_path= ##日志文件路径
[privilege_escalation] ##身份信息设定
become= ##连接后是否自动切换用户
become_method= ##设定切换用户的方式,通常用sudo
become_user= ##在受管主机中切换到的用户,通常为root
become_ask_pass ##是否需要为become_method提示输入密码,默认为false
五、用户级的ansible
在此之前都是用root用户使用ansible,我们也可以设置ansible主机上的其他用户使用ansible。
1.ansible主机上,切换到lee用户。在家目录下建立ansible.cfg(配置文件)与hosts(主机清单),编写配置文件里的一些常用配置和主机清单。
配置文件的分类与优先级 /etc/ansible/ansible.cfg?? ??? ?#基本配置文件,找不到其他配置文件此文件生效 ~/ansible.cfg?? ??? ??? ??? ?#当前目录中没有ansible.cfg此文件生效 ./ansible.cfg?? ??? ??? ??? ?#优先级最高
当前目录里的配置文件 >?当前用户家目录里的配置文件 >?总配置文件
2.在所属westos组的两个主机里,用root执行visudo对wy用户进行权利下放
3.在ansible主机里,用lee用户生成秘钥,并给两个远程主机的wy用户进行加密。即可用lee用户进行ansible的使用。
|