ansible主机清单的写法
时间: 2023-07-21 18:30:34 浏览: 174
在Ansible中,主机清单是一个文件,用于存储要管理的主机列表及其相关信息。主机清单文件可以是静态的,也可以是动态的。
静态主机清单的写法如下:
```
[web_servers]
web1 ansible_host=192.168.1.101 ansible_user=root
web2 ansible_host=192.168.1.102 ansible_user=root
[db_servers]
db1 ansible_host=192.168.1.103 ansible_user=root
db2 ansible_host=192.168.1.104 ansible_user=root
```
上述示例中,`[web_servers]`和`[db_servers]`都是组名,`web1`、`web2`、`db1`和`db2`都是主机名。`ansible_host`是主机的IP地址,`ansible_user`是登录主机的用户名。
动态主机清单的写法如下:
```
#!/usr/bin/env python
import boto3
import json
# Connect to EC2
ec2 = boto3.client('ec2')
# Get all running instances
instances = ec2.describe_instances(Filters=[{'Name': 'instance-state-name', 'Values': ['running']}])
# Build host list
hosts = []
for reservation in instances['Reservations']:
for instance in reservation['Instances']:
# Get public DNS name
public_dns_name = instance['PublicDnsName'] if instance['PublicDnsName'] else instance['PrivateDnsName']
# Add to host list
hosts.append(public_dns_name)
# Print host list in JSON format
print(json.dumps({'all': {'hosts': hosts}}))
```
上述示例使用Python脚本动态获取AWS EC2中所有运行中的实例,并将其作为主机清单。运行脚本后,会输出一个JSON格式的主机清单文件,可以直接使用该文件作为Ansible的主机清单。
无论是静态主机清单还是动态主机清单,都需要确保主机清单文件的格式正确,并且主机信息准确无误。
阅读全文