ダイナミックインベントリプラグイン
1 .インストールしてください.
amazon.aws.aws_ec2 – EC2 inventory source
注意: AWSNES EC 2で終わるYAML設定ファイルを使用します.(YLL - YAWL)
セットアップ
[defaults]
enable_plugins = aws_ec2
host_key_checking = False
pipelining = True
remote_user = ec2-user
private_key_file=/pem/key-pem
グループターゲットへのインベントリansible.cfg
ファイルの作成ここのフィルタはタグです:インスタンスの名前と状態(実行中)
---
plugin: aws_ec2
aws_profile: default
regions:
- us-east-1
filters:
tag:Name:
- dev-*
- share-resource
- hotfix
instance-state-name : running
keyed_groups:
- prefix: env
key: tags['env']
- prefix: dev
key: tags['ssm']
4 .リストとホストグループをチェックする$ ansible-inventory -i my_aws_ec2.yml --list
"all": {
"children": [
"aws_ec2",
"env_dev",
"dev_ssm",
"ungrouped"
]
},
"aws_ec2": {
"hosts": [
"ec2-111-111-111-111.us-east-1.compute.amazonaws.com",
"ec2-11-111-111-112.us-east-1.compute.amazonaws.com",
"ec2-11-111-111-113.us-east-1.compute.amazonaws.com",
"ec2-11-111-111-114.us-east-1.compute.amazonaws.com",
"ec2-11-111-111-115.us-east-1.compute.amazonaws.com",
]
},
"env_dev": {
"hosts": [
"ec2-111-111-111-111.us-east-1.compute.amazonaws.com",
"ec2-11-111-111-112.us-east-1.compute.amazonaws.com",
"ec2-11-111-111-113.us-east-1.compute.amazonaws.com",
"ec2-11-111-111-114.us-east-1.compute.amazonaws.com",
"ec2-11-111-111-115.us-east-1.compute.amazonaws.com",
]
},
"dev_ssm": {
"hosts": [
"ec2-111-111-111-111.us-east-1.compute.amazonaws.com"
]
}
5 .タスクを予期したグループに送信するここでの課題はenvファイルを更新してdevグループをenvoundすることです.ファイル名と値は、有効なホストと項目リスト(ファイルへのAnsible echo)から解析されます
my_aws_ec2.yml
---
- hosts: all
become: yes
tasks:
- name: Get hostname
command: echo {{ ansible_hostname.split('-')[1] }}
register: hostname
- name: Update env files
become: yes
become_user: root
shell: |
echo "AGENT_ID={{ hostname.stdout }}-{{ item }}::" >> "/opt/workdir/{{ item }}.env"
with_items:
- app
- pet
- gate
- api
tags: runcmd
register: result
- name: Print output
debug:
var: result
ラン$ ansible-playbook update_env.yaml -i my_aws_ec2.yml --limit env_dev -vv
Reference
この問題について(ダイナミックインベントリプラグイン), 我々は、より多くの情報をここで見つけました https://dev.to/vumdao/ansible-aws-ec2-dynamic-inventory-plugin-3bmeテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol