ansible
一. redhat8安装ansible
dnf install -y ansible
[root@ts-11 ~]# ansible --version
ansible 2.9.25
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/moes']
ansible python module location = /usr/lib/python3.6/site-packages/ansible
executable location = /usr/bin/ansible
python version = 3.6.8 (default, Jan 11 2019, 02:17:16) [GCC 8.2.1 20180905 (Red Hat 8.2.1-3)]
[root@ts-11 ~]#
二. 查找ansible主配置文件ansible.cfg的查找路径顺序
- 环境变量ANSIBLE_CONFIG
- ./ansible.cfg
- ~/ansible.cfg
- /etc/ansible/ansible.cfg
三. 主配置文件ansible.cfg的解析
四. 主机清单文件
将被管理主机写入一个主机清单
五. 列出所有被管理主机
[root@ansible9 ~]# ansible-inventory --graph
@all:
|--@both:
| |--@group1:
| | |--192.168.30.10
| |--@group2:
| | |--192.168.30.11
|--@ungrouped:
[root@ansible9 ~]# ansible all --list-hosts
hosts (2):
192.168.30.10
192.168.30.11
六. 如果不给被管理端配置ssh免密登录,需要在hosts文件为其指定ssh用户名和密码
七. ansible的功能模块
Ansible服务的强大之处在于只需要一条命令,便可以操控成千上万台的主机节点,而ansible命令便是最得力的工具之一。Ansible服务实际上只是一个框架,能够完成工作的是模块化功能代码。Ansible的常用模块大致有20多个。
- 各个功能模块介绍
Ansible服务常用模块名称及作用
模块名称 模块作用
ping 检查受管节点主机网络是否能够联通。
yum 安装、更新及卸载软件包。
yum_repository 管理主机的软件仓库配置文件。
template 复制模板文件到受管节点主机。
copy 新建、修改及复制文件。
user 创建、修改及删除用户。
group 创建、修改及删除用户组。
service 启动、关闭及查看服务状态。
get_url 从网络中下载文件。
file 设置文件权限及创建快捷方式。
cron 添加、修改及删除计划任务。
command 直接执行用户指定的命令。
shell 直接执行用户指定的命令(支持特殊字符)。
debug 输出调试或报错信息。
mount 挂载硬盘设备文件。
filesystem 格式化硬盘设备文件。
lineinfile 通过正则表达式修改文件内容。
setup 收集受管节点主机上的系统及变量信息。
firewalld 添加、修改及删除防火墙策略。
lvg 管理主机的物理卷及卷组设备。
lvol 管理主机的逻辑卷设备。
- 查看所有可用的模块以及模块的详细信息
使用ansibe-doc -l命令列出所有的模块信息以供选择
[root@ansible9 ~]# ansible-doc -l
a10_server Manage A10 Networks AX/SoftAX/T...
a10_server_axapi3 Manage A10 Networks AX/SoftAX/T...
a10_service_group Manage A10 Networks AX/SoftAX/T...
a10_virtual_server Manage A10 Networks AX/SoftAX/T...
aci_aaa_user Manage AAA users (aaa:User)
aci_aaa_user_certificate Manage AAA user certificates (a...
aci_access_port_block_to_access_port Manage port blocks of Fabric in...
aci_access_port_to_interface_policy_leaf_profile Manage Fabric interface policy ...
aci_access_sub_port_block_to_access_port Manage sub port blocks of Fabri...
使用“ansible-doc 模块名称”的命令格式查询模块帮助
八. ansible的参数
ansible命令常用参数
参数 作用
-k 手动输入SSH协议密码
-i 指定主机清单文件
-m 指定要使用的模块名
-M 指定要使用的模块路径
-S 使用su命令
-T 设置SSH协议连接超时时间
-a 设置传递给模块的参数
--version 查看版本信息
-h 帮助信息
九. ansible的剧本(playbook)
剧本的四部分:
target:用于定义要执行剧本的主机范围
variable:用于定义变量
task:用于定义任务列表
handler:用于定义剧本执行完后要调用的后续任务