[内容] Ansible 条件判断 when

注意:

在使用 Ansible 魔法变量之前,要先安装 Ansible、添加被 Ansible 管理的主机,并且需要 root 权限

正文:

案例一:判断某 1 个变量是否是 1 个固定值

# vim test.yml

添加以下内容:

......
when: "'test' in group_names"
......


补充:
1) 这里以在 test.yml 中, test 为服务器的所属组为条件判断为例
2) group_names 在这里是魔法变量

案例二:判断某 1 个变量是否和另 1 个变量的值相等

# vim test.yml

添加以下内容:

......
when: inventory_hostname in groups.test
......


补充:
1) 这里以在 test.yml 中,服务器名在 test 组中为条件判断为例
2) inventory_hostname 和 groups.test 在这里都是魔法变量

案例三:判断某 1 个变量是否小于或等于 1 个值

# vim test.yml

添加以下内容:

......
when: ansible_distribution_version is version("7.6","le")
......


补充:
1) 这里以在 test.yml 中,系统的版本是否小于或等于 7.6 为条件判断为例
2) inventory_hostname 和 groups.test 在这里都是魔法变量

案例四:判断某 1 个变量是否大于 1 个值

# vim test.yml

添加以下内容:

......
when: ansible_distribution_version is version("7.6","gt")
......


补充:
1) 这里以在 test.yml 中,系统的版本是否大于 7.6 为条件判断为例
2) inventory_hostname 和 groups.test 在这里都是魔法变量

[步骤] Linux 切换用户时图形变量的保持

步骤一:显示当前用户的图形变量

$ echo $DISPLAY
localhost:10.0

(补充:这里的图形变量参数是 localhost:10.0)

步骤二:切换到其他用户

$ su - root

(补充:这里以切换到 root 用户为例)

步骤三:使用上一个用户的图形变量

# export DISPLAY=localhost:10.0

(补充:这里以将图像变量设置为刚才看到的 localhost:10.0 为例)

步骤四:使用图形程序

# xclock

(补充:这里以使用 xclock 图形程序为例)

[命令] Linux 命令 route (管理临时路由表)

案例一:添加某 1 个 IP 地址的路由表

# route add -host 192.168.2.1 dev eth0 gw 192.168.1.1

(补充:这里以指向 192.168.2.1 IP 地址的流量需要通过 eth0 网卡和 192.168.1.1 网关 IP 地址为例)

案例二:删除某 1 个 IP 地址的路由表

2.1 删除某 1 个 IP 地址的路由表

# route del -host 192.168.2.1

(补充:这里删除 192.168.2.1 IP 地址的路由表为例)

2.2 删除某 1 个 IP 地址且指定网关和网卡的路由表

# route del -host 192.168.2.1 -gateway dev eth0 192.168.1.1

(补充:这里以删除指向 192.168.2.1 IP 地址的流量需要通过 eth0 网卡和 192.168.1.1 网关 IP 地址的路由为例)

案例三:添加某 1 个网段的路由表

# route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1

(补充:这里以指向 192.168.2.0/24 网段的流量需要通过 192.168.1.1 网关 IP 地址为例)

案例四:删除某 1 个网段的路由表

4.1 删除某 1 个网段的路由表

# route del -net 192.168.2.0/24

(补充:这里删除 192.168.2.0/24 网段的路由表为例)

4.2 删除某 1 个 IP 地址且指定网关的路由表

# route del -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1

(补充:这里以删除指向 192.168.2.0/24 网段的流量需要通过 192.168.1.1 网关 IP 地址的路由表为例)

案例五:显示现有的路由表

# route -n