Ansible: Ec2.py ์ธ๋ฒคํ† ๋ฆฌ ์Šคํฌ๋ฆฝํŠธ๋Š” ์ด๋ฉ”์ผ์„ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ํƒœ๊ทธ๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2016๋…„ 04์›” 28์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ansible/ansible

๋ฌธ์ œ ์œ ํ˜•
  • ๋ฒ„๊ทธ ์‹ ๊ณ 
    ANSIBLE ๋ฒ„์ „
ansible 2.0.1.0
๊ตฌ์„ฑ
OS / ํ™˜๊ฒฝ

์š”์•ฝ

์ด๋ฉ”์ผ ์ฃผ์†Œ๊ฐ€ ๊ฐ’์œผ๋กœ์žˆ๋Š” ๋‚ด ํ™˜๊ฒฝ์˜ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด "์†Œ์œ ์ž"ํƒœ๊ทธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœํ•˜๋Š” ์–ด๋–ค ์กฐ์น˜๋„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์žฌํ˜„ ๋‹จ๊ณ„

ํƒœ๊ทธ ๊ฐ’์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

./ec2.py --list >> aws_example.json

๊ทธ๋ฆฌ๊ณ  "Owner"ํƒœ๊ทธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

...
"ec2_tag_Owner": "infrastructure",
...
"ec2_tag_Owner": "[email protected]",
...

๊ทธ๋Ÿฌ๋‚˜ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ˜ธ์ŠคํŠธ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด ansible ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ๊ฐ’์œผ๋กœ ์ด๋ฉ”์ผ ์ฃผ์†Œ๊ฐ€์žˆ๋Š” ํ˜ธ์ŠคํŠธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ansible -i tools/ec2.py [email protected] -m ping
์˜ˆ์ƒ ๊ฒฐ๊ณผ

๋‹ค์Œ์€ ํƒœ๊ทธ ๊ฐ’์ด "infrastructure"์ธ ๋™์ผํ•œ ๋ช…๋ น์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค.

ansible -i tools/ec2.py tag_Owner_infrastructure -m ping
The authenticity of host '52.53.222.209 (52.53.222.209)' can't be established.

์ด๊ฒƒ์€ ํ˜ธ์ŠคํŠธ๋ฅผ ์•Œ๊ณ  ์žˆ๊ณ  ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•œ ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์‹ค์ œ ๊ฒฐ๊ณผ
$ ansible -i tools/ec2.py [email protected] -m ping -vvvv
Using /Users/.../ansible/ansible.cfg as config file
ERROR! Specified hosts options do not match any hosts

์ด๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ Key : "Owner"๋ฐ Value : " [email protected] "๊ณผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

@bhuddleston ๋ณด๊ณ 

ec2.py์—์„œ to_safe() ์‚ดํŽด๋ณด๊ธฐ : https://github.com/ansible/ansible/blob/devel/contrib/inventory/ec2.py#L1367

๊ทธ๋ฃน ์ด๋ฆ„์€ tag_Owner_it_domain_com ํ•ฉ๋‹ˆ๋‹ค. (ํ•ญ์ƒ ํ˜ธ์ŠคํŠธ์˜ ์ปจํ…์ŠคํŠธ์—์„œ debug: var=groups ๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ์†ํ•œ ๋ชจ๋“  ๊ทธ๋ฃน์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).

์ด ํ–‰๋™์€ ์•ฝ๊ฐ„ Draconian ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ( '@'๋ฐ '.'๊ฐ€ ํฌํ•จ ๋œ ๊ทธ๋ฃน ์ด๋ฆ„์„ ์‹ค์ œ๋กœ ์ˆ˜๋ฝํ•˜๊ณ  ์ž‘์—… ํ•  ๊ฒƒ์ž„์„ ํ™•์ธํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—). ๋ฌธ์ œ ๋‚˜ PR์„ ์ œ์ถœํ•˜๊ฑฐ๋‚˜ ํ† ๋ก ์„ ์‹œ์ž‘ํ•ด๋„๋ฉ๋‹ˆ๋‹ค. ๋ฉ”์ผ ๋ง๋ฆฌ์ŠคํŠธ / IRC) ec2.py์˜ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

์•„! ์ด์ œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์•Œ์•˜์œผ๋‹ˆ "_"๋ฒ„์ „์„ ์‚ฌ์šฉํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋„์™€ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

ํ˜ธ๊ธฐ์‹ฌ์—์„œ ๊ทธ๊ฒŒ ์–ด๋””์„œ๋‚˜ ๋ฌธ์„œ์— ์ž์„ธํžˆ ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋ถ„๋ช…ํ•œ ๊ฒƒ์„ ๋†“์น˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋ฉ”์ผ ๋ง๋ฆฌ์ŠคํŠธ๊ฐ€ ์ˆ˜์‹  ๊ฐ€๋Šฅํ•œ์ง€ ๋ฌธ์˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๋ธŒ๋ผ์ด์–ธ ํ—ˆ๋“ค ์Šคํ„ด
๊ฐœ๋ฐฉํ˜• IT ์„ค๊ณ„ (IT ์—”์ง€๋‹ˆ์–ด)
+1.510.460.1444 (๊ธฐ๋ณธ)
+1.510.780.2425 (ํŒฉ์Šค)
[email protected]

2016 ๋…„ 4 ์›” 28 ์ผ ์˜คํ›„ 5:05์— Matt Davis [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@bhuddleston ๋ณด๊ณ 

ec2.py์—์„œ to_safe ()๋ฅผ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค : https://github.com/ansible/ansible/blob/devel/contrib/inventory/ec2.py#L1367

๊ทธ๋ฃน ์ด๋ฆ„์€ tag_Owner_it_domain_com์œผ๋กœ ์ž…๋ ฅ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. (ํ•ญ์ƒ debug : var = groups๋ฅผ ํ˜ธ์ŠคํŠธ ์ปจํ…์ŠคํŠธ์—์„œ ์ˆ˜ํ–‰ํ•˜์—ฌ ์†ํ•œ ๋ชจ๋“  ๊ทธ๋ฃน์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).

์ด ํ–‰๋™์€ ์•ฝ๊ฐ„ Draconian ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ( '@'๋ฐ '.'๊ฐ€ ํฌํ•จ ๋œ ๊ทธ๋ฃน ์ด๋ฆ„์„ ์‹ค์ œ๋กœ ์ˆ˜๋ฝํ•˜๊ณ  ์ž‘์—… ํ•  ๊ฒƒ์ž„์„ ํ™•์ธํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—). ๋ฌธ์ œ ๋‚˜ PR์„ ์ œ์ถœํ•˜๊ฑฐ๋‚˜ ํ† ๋ก ์„ ์‹œ์ž‘ํ•ด๋„๋ฉ๋‹ˆ๋‹ค. ๋ฉ”์ผ ๋ง๋ฆฌ์ŠคํŠธ / IRC) ec2.py์˜ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.

์˜ˆ, ๋™์  ์ธ๋ฒคํ† ๋ฆฌ ๋ฌธ์„œ ํŽ˜์ด์ง€ ์— ์žˆ์ง€๋งŒ ํƒœ๊ทธ ์„น์…˜์— ์•ฝ๊ฐ„ ๋ฌปํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค. "๊ฐ ํ‚ค / ๊ฐ’ ์Œ์€ ๊ณ ์œ  ํ•œ ์ธ์Šคํ„ด์Šค ๊ทธ๋ฃน์ด๋ฉฐ, ๋‹ค์‹œ ํŠน์ˆ˜ ๋ฌธ์ž๊ฐ€ tag_KEY_VALUE ํ˜•์‹์œผ๋กœ ๋ฐ‘์ค„๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค."

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰