ansible rpm安装包
提取码:lx9z
sshpass rpm安装包
提取码:5zm7
unzip解压两个安装包
解压完成后开始安装
注意:安装时当文件存在依赖性时,用dnf命令安装依赖性文件
或者用rpm忽略依赖性
/etc/ansible/ansible.conf | 全局配置文件,默认很少修改 |
---|---|
/etc/ansible/hosts | 全局主机清单清单文件 |
清单就是ansible控制主机的列表
/etc/ansible/hosts ##全局清单文件
直接在清单中书写
vim /etc/ansible/hosts
注意:在清单中可以填写ip和主机名称
测试:
在测试时在你的ansible主机中做好相应的解析
vim /etc/hosts
ansible-inventory all --list 查看清单
ansible all --list-hosts
显示所有列表
格式:ansible list_name --list-hosts
ansible node1.westos.com --list-hosts
显示node1.westos.com在哪一个组中
主机规格的范围化操作
通过指定主机名称或IP的范围可以简化Ansible主机清单
语法:
[start:end]
测试:
:相当于从哪里到哪里
注意:当有没有分组的ip或者主机名要写到开头处,写道末尾默认为最后一个清单
ansible westos_list1 --list-hosts
ansible westos_list4 --list-hosts 嵌套清单
注意:当显示的为嵌套清单时嵌套清单中的所有都会显示出来
ansible ungrouped --list-hosts 不在任何组中的
vim inventory
测试:
ansible westos_list1 -i /mnt/inventory --list-hosts
查看inventory中westos_list1的清单
ansible 172.25.254. -i /mnt/inventory --list-hosts*
显示inventory中符合172.25.254.*的所有条件
ansible westos_list1:westos_list2 -i /mnt/inventory --list-hosts
显示inventory中westos_list1和westos_list2中的所有条件
ansible “westos_list1:&westos_list2” -i /mnt/inventory --list-hosts
显示inventory中westos_list1和westos_list2中共有的所有条件
ansible ‘westos_list1:!westos_list2’ -i /mnt/inventory --list-hosts
显示inventory中westos_list1中有却westos_list2中没有的所有条件
ansible ~westos -i /mnt/inventory --list-hosts
显示inventory中以westos开头的所有清单
ansible ‘~(westos|192)’ -i /mnt/inventory --list-hosts
显示inventory中以westos和192开头的所有清单
ansible-doc -l
列出ansible的所有指令
注意:ansible一共有3387个指令
ansible 清单中组名称 -m 模块 -u remote_user
/etc/ansible/ansible.cfg | 基本配置文件,找不到其他配置文件此文件生效 |
---|---|
~/.ansible.cfg | 用户当前目录中没有ansible.cfg此文件生效 |
./ansible.cfg | 优先级最高 |
vim /etc/ansible/ansible.cfg
编辑主配置文件
测试:
连接成功
[default] | 基本信息设定 |
---|---|
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= | 日志文件路径 |
测试:
编辑配置文件
vim /etc/ansible/ansible.cfg
remote_user=zyj
当不加用户登陆时默认用户为zyj
测试修改结果
inventory=
指定清单路径
指定清单路径为/mnt/inventory
测试修改结果
ask_pass=
是否提示输入SSH密码,如果公钥登陆设定为false
修改后测试对比:
当两个主机间建立免密登陆时
当ask_pass=True时
测试:
注意:当还为True时还需要输入密码才可以登录
修改ask_pass=False时
测试:
注意:不需要输入密码
module_name=
默认模块,默认使用command,可以修改为shell
测试:
修改默认为shell
测试:
library=
库文件存放目录
测试:
local_tmp=
本机临时命令执行目录
测试:
script表示在远程主机中执行命令
当关闭时临时也会消失
remote_tmp=
远程主机临时py命令文件存放目录
sudo_user=
默认sudo用户
给普通用户下方权限
编辑配置文件使其简化
[privilege_escalation] | 身份信息设定 |
---|---|
become= | 连接后是否自动切换用户 |
become_method= | 设定切换用户的方式,通常用sudo |
become_user= | 在受管主机中切换到的用户,通常为root |
become_ask_pass | 是否需要为become_method提示输入密码,默认为false |
测试:
复制/etc/ansible/ansible.cfg到当前目录
编辑配置文件(将没有用的数据删除,删除之后的将按照默认操作)
注意:在当前目录下的ansible.cfg优先读取
vim ansible.cfg
修改默认访问目录为当前目录的inventory并编辑
测试: