一、Ansible安装
下载源:epel
dnf install ansible -y
ansible基本信息:
/etc/ansible/ansible.conf:全局配置文件
/etc/ansible/hosts:全局主机清单文件
二、Ansible清单构建
清单:Ansible控制主机列表
1、清单的书写:直接书写受控主机名称或ip,每行写一个
例:
172.25.4.250
2、设定受管主机的组
清单查看:
ansible 清单中组名称 [-i 清单文件] --list-hosts
ansible ungrouped --list-hosts
ansible all --list-hosts
172.25.4.250
单层清单
[westos_list1]
172.25.4.1
172.25.4.2
[westos_list2]
ansible1.westos.com
ansible2.westos.com
172.25.4.3
嵌套清单
[westos_all:children]
westos_list2
westos_list3
测试
三、主机规格的范围化操作
可以通过主机名称或IP的范围可以对Ansible主机清单进行简化
语法:[start:end]
举例:
[westostest]
172.25.254.[100:108]
指定其他清单文件
ansible all -i inventory --list-hosts
ansible westostest -i inventory --list-hosts
ansible ungrouped -i inventory --list-hosts
ansible命令指定清单的正则表达式
* :所有(例:172.25.254.*)
: :逻辑或(例westos1:linux)
:& :逻辑与(westos1:&linux)
:! :逻辑非(westos1:!linux)
~ :以关键字开头
~(str1|str2) :以条件1或条件2开头
四、Ansible配置文件参数详解
ansible 清单中组名称 -m 模块 -u remote_user
1.配置文件的分类与优先级
命令 | 作用 |
---|---|
/etc/ansible/ansible.cfg | 基本配置文件,找不到其他配置文件此文件生效 |
~/.ansible.cfg | 用户当前目录中没有ansible.cfg此文件生效 |
./ansible.cfg | 优先级最高 |
2.常用配置参数
[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 | 日志文件路径 |
[privilege_escalation] 身份信息设定
命令 | 功能 |
---|---|
become | 连接后是否自动切换用户 |
become_method | 设定切换用户的方式,通常用sudo |
become_user | 在受管主机中切换到的用户,通常为root |
become_ask_pass | 是否需要为become_method提示输入密码,默认为false |