我有以下问题:
我正在编写一个配置 NFS 服务器和 NFS 客户端的剧本。
在同一本剧本中,我包括 2 个其他任务:
CentOS_7_NFS_Server.yml 和 CentOS_7_NFS_Client.yml
因为我可以执行我需要比较 IP 地址的任务之一
远程主机
例:
- include: CentOS_7_NFS_Server.yml
when: ansible_all_ipv4_addresses == NFS_Server
- include: CentOS_7_NFS_Client.yml
when: ansible_all_ipv4_addresses == NFS_Client
在变量中:
NFS_Server: x.x.x.x
NFS_Client : y.y.y.y
我收到此错误
FAILED! => {"msg": "The conditional check 'ansible_all_ipv4.address
== NFS_Client' failed. The error was: error while evaluating
conditional (ansible_all_ipv4.address == NFS_Client):
'ansible_all_ipv4' is undefinednnThe error appears to have been
in
很可能禁止收集事实。 当您看到错误时:
ansible_all_ipv4_addresses:未定义变量!
启用它
- hosts: nfs_server_and_client
gather_facts: yes
还有一个问题。ansible_all_ipv4_addresses是所有地址的列表。例如。
ansible_all_ipv4_addresses:
- 192.168.122.1
- 10.1.0.11
- 192.168.1.10
您必须选择一个或多个并将其分配给NFS_Server和NFS_Client。然后,条件应分别测试NFS_Server和NFS_Client是否在列表中ansible_all_ipv4_addresses。
- include: CentOS_7_NFS_Server.yml
when: NFS_Server in ansible_all_ipv4_addresses
- include: CentOS_7_NFS_Client.yml
when: NFS_Client in ansible_all_ipv4_addresses