У меня есть загрузочная книжка Ansible для работы с экземплярами EC2. Я использую динамический инвентарь (ec2.py), чтобы получить группу экземпляров, с которыми я хочу работать (hosts: tag_Service_Foo
). Когда я запускаю его, он производит выход, как:Отображение пользовательского имени для хоста
GATHERING FACTS ***************************************************************
ok: [54.149.9.198]
ok: [52.11.22.29]
ok: [52.11.0.3]
Однако, я могу принести «Name» тег для конкретного экземпляра от Amazon (я это сделать, и сохранить его в переменной для использования в паре частей учебник).
Есть ли способ заставить Ansible использовать эту строку для имени хоста при отображении прогресса? Я хотел бы увидеть что-то более описательным (так как я не имею IP-адрес в памяти):
GATHERING FACTS ***************************************************************
ok: [main-server]
ok: [extra-server]
ok: [my-cool-server]
Выход сценария по ec2.py
инвентаризации выглядит следующим образом (усеченные, это очень долго).
{
"_meta": {
"hostvars": {
"54.149.9.198": {
"ec2__in_monitoring_element": false,
"ec2_ami_launch_index": "0",
"ec2_architecture": "x86_64",
"ec2_client_token": "xxx",
"ec2_dns_name": "xxx",
"ec2_ebs_optimized": false,
"ec2_eventsSet": "",
"ec2_group_name": "",
"ec2_hypervisor": "xen",
"ec2_id": "i-xxx",
"ec2_image_id": "ami-xxx",
"ec2_instance_type": "xxx",
"ec2_ip_address": "xxx",
"ec2_item": "",
"ec2_kernel": "",
"ec2_key_name": "xxx",
"ec2_launch_time": "xxx",
"ec2_monitored": xxx,
"ec2_monitoring": "",
"ec2_monitoring_state": "xxx",
"ec2_persistent": false,
"ec2_placement": "xxx",
"ec2_platform": "",
"ec2_previous_state": "",
"ec2_previous_state_code": 0,
"ec2_private_dns_name": "xxx",
"ec2_private_ip_address": "xxx",
"ec2_public_dns_name": "xxx",
"ec2_ramdisk": "",
"ec2_reason": "",
"ec2_region": "xxx",
"ec2_requester_id": "",
"ec2_root_device_name": "/dev/xvda",
"ec2_root_device_type": "ebs",
"ec2_security_group_ids": "xxx",
"ec2_security_group_names": "xxx",
"ec2_sourceDestCheck": "true",
"ec2_spot_instance_request_id": "",
"ec2_state": "running",
"ec2_state_code": 16,
"ec2_state_reason": "",
"ec2_subnet_id": "subnet-xxx",
"ec2_tag_Name": "main-server",
"ec2_tag_aws_autoscaling_groupName": "xxx",
"ec2_virtualization_type": "hvm",
"ec2_vpc_id": "vpc-xxx"
}
}
}
"tag_Service_Foo": [
"54.149.9.198",
"52.11.22.29",
"52.11.0.3"
],
}
Вы хотите сделать это (aliasing) во время выполнения или статически? Статичность может быть легко выполнена с помощью файла инвентаризации. – Kashyap
Отредактировал мой вопрос. Я использую динамический инвентарь с помощью скрипта ec2.py. –
Можете ли вы опубликовать вывод (часть его) 'ec2.py', когда вы запустите его в командной строке, например' python ec2.py' или './Ec2.py'? – Kashyap