ll_ipv6_addresses": [
"fe80::20c:29ff:fe05:f428"
],
"ansible_apparmor": {
"status": "disabled"
},
"ansible_architecture": "x86_64",
"ansible_bios_date": "07/22/2020",
"ansible_bios_version": "6.00",
"ansible_cmdline": {
"BOOT_IMAGE": "(hd0,msdos1)/vmlinuz-4.18.0-257.el8.x86_64",
"quiet": true,
"rd.lvm.lv": "cs/swap",
"resume": "/dev/mapper/cs-swap",
"rhgb": true,
"ro": true,
"root": "/dev/mapper/cs-root"
},
"ansible_date_time": {
"date": "2022-10-20",
"day": "20",
"epoch": "1666204542",
"hour": "02",
"iso8601": "2022-10-19T18:35:42Z",
"iso8601_basic": "20221020T023542964337",
测试问答:
以下哪一个词语最适合描述 Ansible 架构? a
a. 无代理
b. 客户端/服务器
c. 事件驱动
d. 无状态
Ansible 默认使用哪一种网络协议与受管节点通信? d
a. HTTP
b. HTTPS
c. SNMP
d. SSH
以下哪种文件定义 Ansible 在受管节点上执行的操作? c
a. 主机清单
b. 清单
c. Playbook
d. 脚本
哪一种语言用于定义 Ansible Playbook? d
a. Bash
b. Perl
c. Python
d. YAML
部署Ansible
构建Ansible清单
定义清单
清单定义Ansible将要管理的一批主机。这些主机也可以分配到组中,以进行集中管理。组可以包含子组,主机也可以是多个组的成员。清单还可以设置应用到它所定义的主机和组的变量。
可以通过两种方式定义主机清单。静态主机清单可以通过文本文件定义。动态主机清单可以根据需要使用外部信息提供程序通过脚本或其他程序来生成。
使用静态清单指定受管主机
静态清单文件是指定Ansible目标受管主机的文本文件。可以使用多种不同的格式编写此文件,包括INI样式或YAML。
在最简单的形式中。INI样式的静态清单文件是受管主机的主机名或IP地址的列表,每行一个: 在/etc/ansible/hosts里面编辑
alpha.example.org
beta.example.org
192.168.1.100
但通常而言,可以将受管主机组织为主机组。通过主机组,可以更加有效的对一系列系统运行Ansible。这时,每一部分的开头为以中括号括起来的主机组名称。其后为该组中每一受管主机的主机名或IP地址,每行一个。
[webservers]
alpha.example.org
beta.example.org
192.168.1.100
www[001:006].example.com //[001:006]表示001,002,003,004,005,006,也就是从001到006
上面是一组
[dbservers]
db01.intranet.mydomain.net
db02.intranet.mydomain.net
10.25.1.56
db-[99:101]-node.example.com
编写一个清单
[root@control ~]# cd /etc/ansible/
[root@control ansible]# ls
ansible.cfg hosts roles
[root@control ansible]# vim hosts
[webservers]
alpha.example.org
beta.example.org
192.168.1.100
www[001:006].example.com //[001:006]表示001,002,003,004,005,006,也就是从001到006
上面是一组
[dbservers]
db01.intranet.mydomain.net
db02.intranet.mydomain.net
10.25.1.56
db-[99:101]-node.example.com
验证清单
若有疑问,可使用 ansible 命令验证计算机是否存在于清单中:
[root@control ansible]# cd
[root@control ~]# ansible db-99-node.example.com --list-hosts
hosts (1):
db-99-node.example.com //以上主机都是存在的
[root@control ~]# ansible db-999-node.example.com --list-hosts
[WARNING]: Could not match supplied host pattern, ignoring: db-999-node.example.com
[WARNING]: No hosts matched, nothing to do
hosts (0): //以上主机不存在时,显示的内容
运行以下命令来列出指定组中的所有主机:
[root@control ~]# ansible webservers --list-hosts
hosts (9):
alpha.example.org
beta.example.org
192.168.1.100
www001.example.com
www002.example.com
www003.example.com
www004.example.com
www005.example.com
www006.example.com
如果清单中含有名称相同的主机和主机组,ansible 命令将显示警告并以主机作为其目标。主机组则被忽略。
应对这种情况的方法有多种,其中最简单的是确保主机组不使用与清单中主机相同的名称。
查看不属于任何主机组的主机
[root@control ~]# ansible ungrouped --list-hosts
[WARNING]: No hosts matc