TRANSFORM_INVALID_GROUP_CHARS
è¿œå ããŸãã ãœãŒã¹ãèªã以å€ã«ãä»åŸã©ã®æåãé¿ããå¿
èŠããããã¯æ確ã§ã¯ãããŸããã§ãããèŠåïŒ -vvvv
ïŒã¯ãçŸåšäœ¿çšããŠããç¡å¹ãªæåã瀺ããŠããã ãã§ãã
ååãæå¹ãªPythonå€æ°ã«ããã·ã¥ããŠããããšãæ確ã«ããŠãã ããã ããã¯ãcfgãªãã·ã§ã³ãèŠåãããã³ãªã³ã©ã€ã³ããã¥ã¡ã³ãã®ããã¥ã¡ã³ãã«ãããŸããã
ïŒhttps://github.com/ansible/ansible/commit/d241794daa6d413e6447890e2a4f11e0d818cf0e#diff-b77962b6b54a830ec373de0602918318R122ïŒ
https://docs.ansible.com/ansible/latest/porting_guides/porting_guide_2.8.htmlã«ãããã«ã€ããŠã®èšåã¯ãªãããã§ãã
ã°ã«ãŒã
ansible 2.8.0
config file = /home/awoodward/ansible-skynet/ansible.cfg
configured module search path = [u'/home/awoodward/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/local/bin/ansible
python version = 2.7.5 (default, Apr 9 2019, 14:30:50) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
該åœãªã
該åœãªã
該åœãªã
説æã§èå¥ããããã¡ã€ã«ïŒ
ãããã®ãã¡ã€ã«ãäžæ£ç¢ºãªå Žåã¯ã説æã®component name
ã»ã¯ã·ã§ã³ãæŽæ°ãããã !component
ãããã³ãã³ãã䜿çšããŠãã ããã
ãããã®ãã«ãã«ã€ããŠã¯ããããã¯ãªãã¯ããŠãã ãã
ç§ã¯ãã®èŠåãåãå§ããŸãããã移æ€ã¬ã€ãã«åç §ããªããä¿®æ£æ¹æ³ãä¿®æ£æ¹æ³ã«ã€ããŠã®åç §ããããŸããã§ããã
ç§ã®èŠåã®ã»ãšãã©ã¯ec2.pyããã®ãã®ã§ãããinstance_idã¯-
ïŒäŸïŒ i-033f62b586143dff7
ïŒãšãªãŒãžã§ã³ïŒäŸïŒ eu-central-1c
ïŒã䜿çšããŠãããããããã«å¯Ÿããæ¬åœã®ä¿®æ£
æåŸã«ãããã¯ç§ã®ãã¬ã€ããã¯ã®ããã€ããå£ããŸãããããã§ç§ã¯when: ansible_hostname in groups['varnish']
ã䜿çšãã ansible_hostname
ã¯varnish-eu-central-1c-001
ã§ãã
以åã¯ããã§åé¡ãªãåäœããŠããŸããããä»ã¯inventory_hostname
ã䜿çšããŠvarnish_eu_central_1c_001
ãååŸãã groups['varnish']
äžèŽãååŸããå¿
èŠããããŸãã
ãããã£ãŠãããã«ã¯å°ãªããšãã移æ€ã¬ã€ãã§inventory_hostname
ãšgroups[]
ãç°ãªãããŒã¿ãè¿ãå¯èœæ§ããããšããèŠåãå¿
èŠã§ãã
ã°ã«ãŒãåããããã·ã¥ãåé€ããçç±ã¯äœã§ãããïŒ ç¹ã«ããã«ã¯å€ãã®ã³ãŒããªãã¡ã¯ã¿ãªã³ã°ãå¿ èŠã«ãªããããç§ã¯ãã®æ£åœãªçç±ãèŠã€ããã®ã«æ¬åœã«èŠåŽããŠããŸãã
@ssbarnea 1groups.foo-group
ãªã©ã®ããããæ§æãã䜿çšããããšããŠãããŠãŒã¶ãŒã«ãšã£ãŠåé¡ãçºçããŸããããã¯ãŠãŒã¶ãŒãæåŸ
ããããšãå®è¡ããŸããã ãã®ãããªå°ããªåé¡ã«ãã£ãŠåŒãèµ·ããããåé¡ããµããŒããªã¯ãšã¹ãã®æ°ã«ããããã®ãããªåé¡ãçºçããªãããã«ãã»ãŒãã¬ãŒãåãžã®éããã©ããŸããã
ç¡å¹ãªæåãšèŠãªããããã®ãä¿æãããå Žåã¯ããã®æ©èœããªããã¢ãŠãã§ããŸãã
ãã®æ©èœããªããã¢ãŠãããã«ã¯ã©ãããã°ããã§ããïŒ ããŒã«ã«ã®Ansibleãããã€ã¡ã³ãã¹ã¯ãªããã«ã¯ããã€ãã³ãå«ãã°ã«ãŒãåãæ£ãã°ã£ãŠããŸãã ãã¡ããããããè¡šèšã§ã¯äœ¿çšããŸããã ããããããããã¹ãŠãå€æŽããããšã¯ãæ¬åœã«éæ¹ããªãäœæ¥ã«ãªãã§ãããã ãªããã¢ãŠããããšåæã«ãå°æ¥çã«ãã€ãã³ã䜿çšããªãããã«ããŒã ã«å§ããå¯èœãªå Žåã¯ãã€ãã³ãã¢ã³ããŒã¹ã³ã¢ã«å€æããããšããå§ãããŸãããã®æåŸã®éšåã¯ãèŠãç®ã»ã©åçŽã§ã¯ãããŸããã
ããã§ãansible.cfgã«force_valid_group_names = false
ããã ãã§ããïŒ https://github.com/ansible/ansible/commit/d241794daa6d413e6447890e2a4f11e0d818cf0e#diff -fd24ad93fbc32f454761746c1ac908f2ã«åºã¥ããŠãããã¯æ£ããããã§ã
ãã®æ©èœããªããã¢ãŠãããã«ã¯ã©ãããã°ããã§ããïŒ ããŒã«ã«ã®Ansibleãããã€ã¡ã³ãã¹ã¯ãªããã«ã¯ããã€ãã³ãå«ãã°ã«ãŒãåãæ£ãã°ã£ãŠããŸãã ãã¡ããããããè¡šèšã§ã¯äœ¿çšããŸããã ããããããããã¹ãŠãå€æŽããããšã¯ãæ¬åœã«éæ¹ããªãäœæ¥ã«ãªãã§ãããã ãªããã¢ãŠããããšåæã«ãå°æ¥çã«ãã€ãã³ã䜿çšããªãããã«ããŒã ã«å§ããå¯èœãªå Žåã¯ãã€ãã³ãã¢ã³ããŒã¹ã³ã¢ã«å€æããããšããå§ãããŸãããã®æåŸã®éšåã¯ãèŠãç®ã»ã©åçŽã§ã¯ãããŸããã
ããã§ãansible.cfgã«
force_valid_group_names = false
ããã ãã§ããïŒ ããã¯d241794ïŒdiff-fd24ad93fbc32f454761746c1ac908f2ã«åºã¥ããŠã§ã
export ANSIBLE_TRANSFORM_INVALID_GROUP_CHARS=never
ãŸãã¯export ANSIBLE_TRANSFORM_INVALID_GROUP_CHARS=ignore
-åŸè
ã¯ãŸã ããã¥ã¡ã³ãã«ãããŸããïŒ https ïŒ
ããããšãããžã§ãŒã ãºã 人ã ã¯èŠåã¡ãã»ãŒãžã®ãã©ããŒã¢ããã®ããã«ãã®åé¡ã«æ¥ãŠããã®ã§ãç§ã¯åœ¹ã«ç«ã€ãããããªããšæãæ å ±ãå«ããŠããŸãïŒ
ã€ã³ãã³ããªããç¡å¹ãªã°ã«ãŒããã¯ãªã¢ããæºåãã§ãããŸã§ã2.10以äžã®ã°ã«ãŒãåã®èªåå€æããã移æ€å¯èœ/æ°žç¶çã«ç¡å¹ã«ããã«ã¯ãã®[defaults]
INIã»ã¯ã·ã§ã³ã«force_valid_group_names = never
ãè¿œå ããŸãã ansible.cfg
ã
èŠåãããªã¬ãŒãããã¹ãŠã®ã°ã«ãŒããšç¡å¹ãªæåã衚瀺ããã«ã¯ïŒããããããããã段éçå»æ¢ã®å¯Ÿè±¡ã«ããããšãã§ããŸãïŒã次ã®ãããªå®è¡å¯èœãªCLIno-opãå®è¡ã§ããŸãã
ansible-inventory -vvvv --host=localhost 2>&1 | grep replacing
ãããã®ç¡å¹ãªæåã¯ïŒ2019-06-04çŸåšïŒå®æ°INVALID_VARIABLE_NAMES
ãšããŠæ¬¡ã®ããã«å®çŸ©ãããŠããŸãã
https://github.com/ansible/ansible/blob/devel/lib/ansible/constants.py#L119
'^[\d\W]|[^\w]'
ã
ã€ãŸãã any leading non-alpha character OR any character other than alpha-numeric and underscore
ã§ãã
ïŒç§ã¯ãããæ£ããããšãé¡ã£ãŠããŸãïŒ
éæšå¥šã®èŠåãç
©ãããå Žåã¯ãåã[defaults]
deprecation_warnings = False
ãè¿œå ããŠã ansible-
ã³ãã³ããŸãã¯ansible
ã¢ãããã¯ã³ãã³ãã®èŠåãå®å
šã«ç¡å¹ã«ããããšãã§ããŸãã [defaults]
ansible.cfg
[defaults]
ã»ã¯ã·ã§ã³ã§ãããïŒéèŠãªãã¥ãŒã¹ãèŠéãå¯èœæ§ãããããïŒããã«å察ãã代ããã«æ¬¡ã®ãããªã€ã³ã©ã€ã³ã·ã§ã«ç°å¢å€æ°ã䜿çšããããšããå§ãããŸãã
ANSIBLE_DEPRECATION_WARNINGS=False ansible-inventory --host=localhost
ãã ãã [WARNING]
解æããåšåº«ã¯ãªããªããŸããã ãã¹ãŠã®èŠåããªãã«ããç¹å®ã®æ§æãŸãã¯ç°å¢å€æ°ã¯ãããŸãããïŒãŸã ïŒïŒãæ¬åœã«ãã°ãããå Žåã¯ããã¹ãŠã®stderrã/dev/null
éä¿¡ã§ããŸãïŒããã«ããã¹ããã©ã¯ãã£ã¹ãã®èŠåãæ¿å
¥ããŠãã ããïŒã
2>/dev/null ansible-inventory --host=localhost
ããã誰ããã©ããã§åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã
移è¡ãã¹ãæäŸãããŠããªãå Žåã«ã®ã¿ãéæšå¥šã®èŠåã¡ãã»ãŒãžãç ©ããããšæããŸãã ã¹ããŒã¹ãéãããŠããã修埩ã«ã¯æŽæ°ãå¿ èŠã«ãªãå¯èœæ§ãããããšãèãããšã解決çãåé¿çãªã©ãææžåã§ãããã±ãããžã®ãªã³ã¯ãæäŸãããšéåžžã«äŸ¿å©ã§ãã
ãã®ãããªã¢ãããŒãã§ã¯ãã¡ãã»ãŒãžãæŽæ°ããŠããã€ãã®ããŒãžã§ã³ã«ããã¯ããŒãããå¿ èŠããªããããäžå®å šãªèŠåã¡ãã»ãŒãžãæ¹åããããã«å¿ èŠãªäœåãªäœæ¥ãç¯çŽã§ããŸãã
PSã éæšå¥šã®èŠåãç¡å¹ã«ããããšã¯ããããžã§ã¯ãããã§ã«æçµçãªéåœã«çŽé¢ããŠããå Žåã«ã®ã¿ã誰ã«ããå§ãããŸãã;ïŒ
ç§ã¯ãã®èŠåãåãå§ããŸãããã移æ€ã¬ã€ãã«åç §ããªããä¿®æ£æ¹æ³ãä¿®æ£æ¹æ³ã«ã€ããŠã®åç §ããããŸããã§ããã
ç§ã®èŠåã®ã»ãšãã©ã¯ec2.pyããã®ãã®ã§ãããinstance_idã¯
-
ïŒäŸïŒi-033f62b586143dff7
ïŒãšãªãŒãžã§ã³ïŒäŸïŒeu-central-1c
ïŒã䜿çšããŠãããããããã«å¯Ÿããæ¬åœã®ä¿®æ£æåŸã«ãããã¯ç§ã®ãã¬ã€ããã¯ã®ããã€ããå£ããŸãããããã§ç§ã¯
when: ansible_hostname in groups['varnish']
ã䜿çšããansible_hostname
ã¯varnish-eu-central-1c-001
ã§ãã
以åã¯ããã§åé¡ãªãåäœããŠããŸããããä»ã¯inventory_hostname
ã䜿çšããŠvarnish_eu_central_1c_001
ãååŸããgroups['varnish']
äžèŽãååŸããå¿ èŠããããŸãããããã£ãŠãããã«ã¯å°ãªããšãã移æ€ã¬ã€ãã§
inventory_hostname
ãšgroups[]
ãç°ãªãããŒã¿ãè¿ãå¯èœæ§ããããšããèŠåãå¿ èŠã§ãã
EC2ãã€ãããã¯ã€ã³ãã³ããªã¹ã¯ãªããã«ãã£ãŠçæãããèŠåã«ã€ããŠã®ã¹ããŒãã¡ã³ãããšã³ãŒãââãããšæãgroup_by_instance_id = False
ïŒã«ãããã¹ãã®ã°ã«ãŒãåãç¡å¹ã«ããec2.ini
æ§æèšå®ãããããšã«æ°ä»ããŸããããäºæ³ã©ããã«èŠåã解決ãããªãã£ãèšå®-確èªããŸããããŒã«ã«ã€ã³ãã³ããªãã£ãã·ã¥ãã¯ãªã¢ããŸããã
ç¹ã«EC2åçã€ã³ãã³ããªã®åé¿çã¯ãããŸããïŒ
ãããã®ç¡å¹ãªæåã¯ãïŒ2019-06-04ã®æç¹ã§ïŒå®æ°
INVALID_VARIABLE_NAMES
ãšããŠæ¬¡ã®ããã«å®çŸ©ãããŠããŸãã
https://github.com/ansible/ansible/blob/devel/lib/ansible/constants.py#L119
'^[\d\W]|[^\w]'
ã
ã€ãŸããany leading non-alpha character OR any character other than alpha-numeric and underscore
ã§ãã
ïŒç§ã¯ãããæ£ããããšãé¡ã£ãŠããŸãïŒ
ç§ã«ã¯æ£ç¢ºã«èãããŸãã ãã®æ å ±ãèšèŒããããã¥ã¡ã³ãPRãæåºããå¿ èŠããããŸãã
éæšå¥šã®èŠåãç ©ãããå Žåã¯ãåã
[defaults]
deprecation_warnings = False
ãè¿œå ããŠãansible-
ã³ãã³ããŸãã¯ansible
ã¢ãããã¯ã³ãã³ãã®èŠåãå®å šã«ç¡å¹ã«ããããšãã§ããŸãã[defaults]
ansible.cfg
[defaults]
ã»ã¯ã·ã§ã³ã§ãããïŒéèŠãªãã¥ãŒã¹ãèŠéãå¯èœæ§ãããããïŒããã«å察ãã代ããã«æ¬¡ã®ãããªã€ã³ã©ã€ã³ã·ã§ã«ç°å¢å€æ°ã䜿çšããããšããå§ãããŸãã
ANSIBLE_DEPRECATION_WARNINGS=False ansible-inventory --host=localhost
ãã ãã
[WARNING]
解æããåšåº«ã¯ãªããªããŸããã ãã¹ãŠã®èŠåããªãã«ããç¹å®ã®æ§æãŸãã¯ç°å¢å€æ°ã¯ãããŸãããïŒãŸã ïŒïŒãæ¬åœã«ãã°ãããå Žåã¯ããã¹ãŠã®stderrã/dev/null
éä¿¡ã§ããŸãïŒããã«ããã¹ããã©ã¯ãã£ã¹ãã®èŠåãæ¿å ¥ããŠãã ããïŒã
ææžåãããŠããªãignore
ãªãã·ã§ã³ã¯ããã®æ©èœãæäŸããŸãã ããã¥ã¡ã³ãPRã¯ãã¡ãïŒ https ïŒ
2.8.2以éãããããã®éžæè¢ãæ瀺çã«èšå®ãããšããã®éæšå¥šã®èŠåã¯ç Žæ£ãããŸãã
AnsibleéçºããŒã ã¯ãã®ã¿ã€ãã®æ±ºå®ã«ã€ããŠã©ãã§è©±ãåããŸããïŒ ç§ãã¡ãŠãŒã¶ãŒãããã®çç±ãç解ããã®ã¯éåžžã«é£ããã§ãã å®è·µçæšè«ã§ã¯ãªããçŽç²ãªãPythonã¹ã¿ã€ã«ãã®æšè«ã§ããå Žåã¯ãåæ€èšãã䟡å€ãããã®ã§ã¯ãªãã§ããããã ã°ã«ãŒãåã®ããã·ã¥ãansibleã®å°æ¥ã®ãªãªãŒã¹ã§åé¡ã«ãªãå Žåã¯ãã°ã«ãŒãã®ååããããå®è£ ã«åé¡ãããå¯èœæ§ããããŸããïŒ
ç§ã«ã¯ãããã¯é©åã«èãæããããã®ãšããããã¯ãèŠãç®ã®å€åã®ããã«èãããŸãã
ã°ã«ãŒãåã¯å€æ°åã§ã¯ãªãããã®å 容ã§ãã ãã€ãã³/ããã·ã¥ã¯åãªãæåã§ãããåœåèŠåã§æ å ±ãã°ã«ãŒãåããéåžžã«äžè¬çãªæ¹æ³ã§ããããŸãã æå笊ãæãšæ¯èŒããŠãå¶éå¥ã§ã¯ç¹å¥ãªæå³ã¯ãããŸããã
äœåãã®ãµã€ããã€ã³ãã³ããªå ã®ã°ã«ãŒãåãå€æŽããã ãã§ãªãããã¹ãŠã®ãã¬ã€ããã¯ãšèªå®¶è£œã®åœ¹å²ã調ã¹ãŠããããããã¹ãŠåãã¹ãããå¿ èŠãããããšãèãããšããã®åé¡ã軜æžããããã®ã³ã¹ãã¯è«å€§ã§ãã
ã蟲æ°ããèªåã®å£°ãèãæ¹æ³ãããã°ãèªåã®æèŠãå°ããã€åãå ¥ããŠããã®ã¢ã€ãã¢ãã©ã®ããã«çãŸããã®ããç解ããŠã¿ãããšæããŸãã
ç§ã¯ããŠãŒã¶ãŒãããã®ãããªäœ¿çšããããšããŠééããããå€æŽãansibleã«è¡ãããããšãç解ããããã«ãªã£ãgroups.group-name
ã§ã¯ãªãgroups['group-name']
ã AIUIãããã¯çŽç²ã«ãµããŒãã®åé¡ãæžããããšãç®çãšããå€æŽã§ãã ïŒç§ã¯å人çã«å€æŽã«å察ããŠããŸããïŒ
å€ãåäœã¯æ¶ããŸããã å€ãåäœãæ瀺çã«éžæããªããšã䜿çšã§ããªããªããŸãã
èããŠæ²ããã
ç§ã®ãŠãŒã¹ã±ãŒã¹ã¯ãã³ãã³ããansible-inventoryããVagrantãã¡ã€ã«ã«åã蟌ãã§ããããšã§ããããã¯ãansible.cfgã«èšå®ããã®ãç¡ç€Œã§ããããªãŒããŒã©ã€ãã§ããããã«ããã®ã«åœ¹ç«ã¡ãŸããã³ãã³ãã©ã€ã³ãªãã·ã§ã³ãšããŠã®åäœïŒç°å¢å€æ°ã§ã¯ãããŸããïŒã
éåžžããã®ãããªå€æŽã¯åæã«ãããã®ã§ãããå¿ ããã念é ã«çœ®ããçµæã«ã€ãªãããšã¯éããŸããã
ãã®å€æŽã«é¢ããç§ã®åé¡ã¯ãã°ã«ãŒãåããããç¹å¥ãã«ãªãããšã§ããããã·ã¥ã¯ãã¹ãåã§ã¯èš±å¯ãããŸãããã°ã«ãŒãåã§ã¯èš±å¯ãããªãããã hosts:
ã»ã¯ã·ã§ã³ã®ãã¬ã€ããã¯ã®åé ã§èãããšå°ãå¥åŠã«ãªããŸãããã¹ãåãã°ã«ãŒãåãæžãããšãã§ããŸãã
@sivelã«ãã説æã¯ãæ¬åœã«ãã®å€æŽã®èåŸã«ããå¯äžã®çç±ã§ããïŒ ã§ã¯ã hosvars['foo-host']
ã¯ã©ãã§ããïŒ ã€ã³ãã³ããªã®ãã¹ãåã«ãããã·ã¥ãç¡å¹ãªæåã«ããããšãæ€èšããŠãã人ãããªãããšãé¡ã£ãŠããŸã...
hostvars
以å€ã«ããããããè¡šèšãã䜿çšã§ããªãäŸããããããããããã©ã®ãã©ãŒã ããã€äœ¿çšããããç¥ãå¿
èŠããããŸãã ã°ã«ãŒãåãéžã³åºãã®ã¯ããªãæ£æçã ãšââæããŸãã
ãããè¡šèšã®åŒæ°ã¯ããæå¹ãªèšãèš³ã§ãããããã¥ã¡ã³ããæ¹åããã«ãµããŒãã®åé¡ãä¿®æ£ããããšã¯ã§ããŸããã ãŠãŒã¶ãŒãæããªããšãããŠããå Žåãããã¥ã¡ã³ãã¯é©åã§ã¯ãããŸããã ãã¹ãŠã®éçºè ãæåããã®ã¯ãå€ãã®ãŠãŒã¶ãŒãé ãããããšã§ãã ã°ã«ãŒãåã¯ä»»æã®æååå€ãšããŠè¡šç€ºãããŸãã è±æ°åãšã¢ã³ããŒã¹ã³ã¢ã«æ£çŽã«å¶éããããšã¯ãç¹ã«ãã¹ãåRFCã§ããã·ã¥ãããªãªããªã©ãèš±å¯ãããŠããå Žåã¯ãããé¢åã§ããã¢ã³ããŒã¹ã³ã¢ãåœåèŠåã®äºå®äžã®æšæºã§ããå Žåãããã¯åé¡ã«ãªããšã¯æããŸããã ãã€ãã³ã¯èšè¿°åæååã«åºã䜿çšãããŠããŸãã ãµããŒãéãæžããããå Žåã¯ãå¥ã®æ¹åãããããè¡šèšã®åé¡ã«å¯ŸåŠããŠã¿ãŠãã ããã ãµããŒãããŒã ãæäŸã§ããæ€èšŒã¹ã¯ãªãããäœæããŠããã¹ããã©ã¯ãã£ã¹ã®åé¡ããã§ãã¯ããäŸãšããŠèŠåãŸãã¯ã¬ã€ãã³ã¹ãæäŸããŸãã ãããè¡šèšã®èŠåã«é¢ããããã¥ã¡ã³ããæŽæ°ããŠã倧ããã倪åãèµ€ãç¹æ» ãªã©ã«ããŸããããã¥ã¡ã³ãã§ãã§ã«åé¡ãã«ããŒãããŠããå Žåããã®ãããªãµããŒãã±ãŒã¹ã¯1åéã®é»è©±ã«ãªããŸãã é»è©±ã«åºãŠãåé¡ã確èªããããã¥ã¡ã³ããªã³ã¯ãæäŸããŸãã
ã°ã«ãŒãåã®ããã·ã¥ã¯æå¹ãªINIãšæå¹ãªYAMLã®äž¡æ¹ã§ããååãPythonå€æ°åãšããŠäœ¿çšã§ããªããšããçç±ã ãã§ããŠãŒã¶ãŒãšããŠãã¹ãŠã®ã°ã«ãŒãã®ååãå€æŽããå¿ èŠãããçç±ãããããŸããã
ãŸããã°ã«ãŒãåã®-
ãéæšå¥šã«ãããšãããã®æ±ºå®ã®èåŸã«ããçè«çæ ¹æ ã«çåãæããããŠããŸãã åçã€ã³ãã³ããªkeyed_groups
ããã·ã¥ã䜿çšã§ããªãããšã¯ããã§ã«ååã«ç
©ãããããšã§ããããä»®æ³çãªæ§æé¢é£ã®ãµããŒãã®åé¡ãåé¿ããããã«ãã€ã³ãã³ããªãã¡ã€ã«ãšansible-playbook -l ...
ã³ãã³ãå
ã®ãã¹ãŠã®ã°ã«ãŒãã®ååãå€æŽããå¿
èŠããããŸããçããªãã ããã
FWIWã«ã¯ã foo_server
ãããªåœ¹å²ã°ã«ãŒããããã³foo-dev
ãfoo-test
ãããªãã¹ãã°ã«ãŒãã«ååãä»ããããã®èŠåããããŸãã Ansibleã®äœ¿çšæ³ã®ã»ãŒ100ïŒ
ã¯ansible-playbook -l foo-dev
ãããªã³ãã³ãã§ããããããã®å€æŽã¯çèã®èšæ¶ãšæŠãããã«å€å€§ãªåŽåãèŠããŸãã
ããã«å¥ã®me2ãè¿œå ãããšããã®ç¹å®ã®æ±ºå®ã®åãæ¶ããä¿é²ããããã©ããã¯ããããŸããããã°ã«ãŒãåãæå¹ãªPythonèå¥åã§ãããšããèŠä»¶ã®æ¹å€è ã«åæããåŸåããããŸãã
ã°ã«ãŒãåã®æåãæ°åãã¢ã³ããŒã¹ã³ã¢ãšäžç·ã«ãã€ãã³ããµããŒãããŠãã ããïŒãã ãããããã«å¯ŸããŠãäœããããŸããïŒã
ã°ã«ãŒãåã«ã¯ãã€ãã³ãå€çšããŸãã ãã®ãããªååãã°ã«ãŒãåããããã®äž¡æ¹ïŒ
[server-3x]
server-31.example.com
server-32.example.com
server-33.example.com
ãããŠã次ã®ããã«ïŒç°ãªãvarãã¡ã€ã«ã§ãã¹ãåãç¶æãã代ããã«ïŒãã¹ããªã¹ãã1ã€ã®å Žæã«ä¿æããããã«ã€ã³ãã³ããªã_abuse_ããŸãã
[prometheus_node-exporter_cluster1:children]
server-3x
server-5x
````
We use such groups in templates like this:
{ïŒ
set _hostgroup = [_serviceã_jobã_cluster] | joinïŒ '_'ïŒïŒ
}
{ïŒ
set _hostlist = groups [_hostgroup] | dïŒ[]ïŒ| sortïŒ
}
{ïŒ
if _hostlistïŒ
}
{_hostlistå
ã®ãã¹ãã®ïŒ
ïŒ
}
..ã
`` `
ã°ã«ãŒãåãšãã¹ãåãæ確ã«åºå¥ããããã ãã«ãããã䜿çšããããšã¯ãããŸããã
TRANSFORM_INVALID_GROUP_CHARS
INVALIDãšããåèªã¯ãé·æçã«ãããã䜿çšãç¶ããããšãå¯èœã§ãããšãã確信ãäžããŸããã
ãããã®æåã®äœ¿çšãé¿ããããšãç®çã®å Žåã¯ããããã_UNSAFE_æåãšåŒã³ãèŠåã衚瀺ããŠããŠãŒã¶ãŒããã®èŠåã衚瀺ãããã©ãããå€æã§ããããã«ããŸãã ãã ãããããã®æåãçŠæ¢ããã眮ãæãããããªãã§ãã ããã
ãŠãŒã¶ãŒã¯ãaïŒãã®èŠåããã¥ãŒãããïŒALLOW_UNSAFE_GROUP_CHARSãªã©ã®ããŒã¯ãŒãã䜿çšïŒãbïŒã°ã«ãŒãåãå€æŽããïŒå¯èœãªå ŽåïŒããŸãã¯cïŒãã®èŠåããã®ãŸãŸè¡šç€ºããå¿ èŠããããŸãã ãšã«ãããã»ãšãã©ã®äººã¯æåã®2ã€ã®ãªãã·ã§ã³ããéžæããŸãã
ãŸããããã·ã¥ã-ãã¯ã»ãšãã©ãã¹ãŠã®ã¿ã€ãã®ã³ã³ãã¥ãŒã¿ãŒé¢é£ããŒã«ã§äœ¿çšãããæšæºã®åºåãæåã§ããã1ã€ã®ãå®æãã«æºæ ããããšãããšå¶éãããããã«èŠãããããããã¯ç¡æå³ã ãšæããŸãã
å€ãåäœã¯æ¶ããŸããã å€ãåäœãæ瀺çã«éžæããªããšã䜿çšã§ããªããªããŸãã
ã°ã«ãŒãåã®ããã·ã¥ãå®éã«ãªããã€ã³ã§ããã°ããã®éæšå¥šã«ã€ããŠã¯ããã»ã©å¿é ããŸããã ããããã°ãããã¯æ°ãããŠãŒã¶ãŒã®èŠ³ç¹ããç解ã§ãããããããŸããã
ãã ããéæšå¥šã®èŠåã¯ãAnsible2.10ã§TRANSFORM_INVALID_GROUP_CHARS=never
ãªãã·ã§ã³ãå»æ¢ãããããšãæå³ããŸãããããã£ãŠãAnsible 2.10ããªãªãŒã¹ãããåã«ããã¹ãŠã®ã°ã«ãŒãã®ååãå€æŽãå§ããå¿
èŠããããŸããïŒ
[éæšå¥šã®èŠå]ïŒTRANSFORM_INVALID_GROUP_CHARSèšå®ã¯ãããã©ã«ãã§ã°ã«ãŒãåã«äžæ£ãªæåãèš±å¯ããããã«èšå®ãããŠããŸããããã¯å€æŽãããŸãããéæšå¥šã®å Žåã§ããŠãŒã¶ãŒãæ§æã§ããŸãã ãã®æ©èœã¯ããŒãžã§ã³2.10ã§åé€ãããŸãã éæšå¥šã®èŠåã¯ãansible.cfgã§deprecation_warnings = Falseãèšå®ããããšã§ç¡å¹ã«ã§ããŸãã
ãŸããåçã€ã³ãã³ããªãã©ã°ã€ã³keyed_groups
ã䜿çšãããšã TRANSFORM_INVALID_GROUP_CHARS=never
ãèšå®ãããŠããå Žåã§ããã°ã«ãŒãåã匷å¶çã«å€æãããŸãïŒ https ïŒ https://github.com/ansible/ansible/blob/db0fe4b1884e6bb9c25e970c7585abb7edd9d664/lib/ansible/inventory/group.py#L39
TRANSFORM_INVALID_GROUP_CHARS=never
䜿çšã¯ãä»åŸããµããŒãããç¶ããå¿
èŠããããŸã
ç·šéïŒã³ãŒããèªãã§ãæå³ã¯TRANSFORM_INVALID_GROUP_CHARS
ãç¶æããããšã§ããããã«èãããŸããã2.10ã§ããã©ã«ããalways
ã«å€æŽããŸã-ãã®å Žåãéæšå¥šã®èŠåã¯ããŸãããè¡šçŸãããŠããŸããïŒ httpsïŒ/ /github.com/ansible/ansible/blob/db0fe4b1884e6bb9c25e970c7585abb7edd9d664/lib/ansible/inventory/group.py#L50
TRANSFORM_INVALID_GROUP_CHARS=never
ã䜿çšãããšãéæšå¥šã®èŠåã衚瀺ãããªããªããŸã
ããã¯ãææžåãããŠããªãignore
ãªãã·ã§ã³ã§ãã§ã«å¯èœã§ããããã§ãïŒ https ïŒ
TRANSFORM_INVALID_GROUP_CHARS=never
ã䜿çšãããšãåçåšåº«keyed_groups
ã§ãããã·ã¥ã䜿çšã§ããããã«ãªããŸãã
ç·šéïŒããã¯æããã«ãçæãããã°ã«ãŒãåãç¡æ¡ä»¶ã«å€æããAnsible2.7ã®äžäœäºææ§ã®ããã§ãã ãããæ瀺çã«ãªããã¢ãŠãããã®ã¯çŽ æŽãããããšã§ãã
å€æ°åã«é¢ããŠãèŸæžããŒã®åœ¢åŒãå€æ°åã®æ§æãšçããããå¿ èŠãããçç±ãããããŸããã AFAIKã©ã®ããã°ã©ãã³ã°èšèªã«ããã®ãããªå¶éã¯ãããŸããã Pythonã§ã¯ãã»ãšãã©ãã¹ãŠã®æååãèŸæžããŒãšããŠäœ¿çšã§ããŸãã
èŸæžåå€æ°ããã°ã«ãŒãåãããã®ã§ã¯ãªãããã¹ãåãšã°ã«ãŒãåã¯ã©ã¡ããAnsibleã®åãªãèŸæžããŒã§ãã ãããã¯ããèªäœãããããã£ã§ãå€æ°ã§ããããŸãããïŒ
groups ["foo-group"]ãããgroups.foo-groupæ§æãçŠæ¢ããããšæããŸãã g = "foo-group"ã®å Žåãgroups.gãŸãã¯groups [g]ã䜿çšããŸããïŒ
ansible.cfg
[default]
force_valid_group_names = ignore
ãŸãã¯export ANSIBLE_TRANSFORM_INVALID_GROUP_CHARS=ignore
ããŠããAnsible2.8.1ã§ã¯æ©èœããªãããã§ãã ããã§ãéæšå¥šã®èŠåã衚瀺ãããŸãã
$ ANSIBLE_TRANSFORM_INVALID_GROUP_CHARS=ignore ANSIBLE_VAULT_PASSWORD_FILE=vault-password.secret ansible-playbook --diff -i xyz-dev.ini xyz-infra-install.yml -l xyz-dev --check
[DEPRECATION WARNING]: The TRANSFORM_INVALID_GROUP_CHARS settings is set to allow bad characters in group names by default, this will change, but still be user configurable on deprecation. This feature will be removed in version 2.10. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
ããã¯ãæå¹ãªchoices
ãŸã ãªã¹ããããŠããªãããã§ããïŒ https://github.com/ansible/ansible/blob/v2.8.1/lib/ansible/config/base.yml#L1501
ansible.cfg
[default]
force_valid_group_names = ignore
ãŸãã¯export ANSIBLE_TRANSFORM_INVALID_GROUP_CHARS=ignore
ããŠããAnsible2.8.1ã§ã¯æ©èœããªãããã§ãã ããã§ãéæšå¥šã®èŠåã衚瀺ãããŸãã$ ANSIBLE_TRANSFORM_INVALID_GROUP_CHARS=ignore ANSIBLE_VAULT_PASSWORD_FILE=vault-password.secret ansible-playbook --diff -i xyz-dev.ini xyz-infra-install.yml -l xyz-dev --check [DEPRECATION WARNING]: The TRANSFORM_INVALID_GROUP_CHARS settings is set to allow bad characters in group names by default, this will change, but still be user configurable on deprecation. This feature will be removed in version 2.10. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
ããã¯ãæå¹ãª
choices
ãŸã ãªã¹ããããŠããªãããã§ããïŒ https://github.com/ansible/ansible/blob/v2.8.1/lib/ansible/config/base.yml#L1501
ããã¯ã次ã®ããŒãžã§ã³2.8.2ã§ä¿®æ£ããããã°ã§ãã ããªãã¯export ANSIBLE_TRANSFORM_INVALID_GROUP_CHARS=ignore
ããããšãã§ããã§ãããããããŠããã¯ãã¹ãŠã®èŠåãæŒãã€ã¶ããŸãã
ïŒç¡èŠãªãã·ã§ã³ã¯ãŸã ææžåãããŠããŸããïŒhttpsïŒ//github.com/ansible/ansible/pull/57318ïŒ
ããã¯ã¿ããªãå£ãã§ãããã æªã決æã
ããã«ã€ããŠã¡ã³ããã«æšè«ããæ¹æ³ã¯ãããŸããïŒ
ãããåãªããµããŒãã®åé¡ã§ããå ŽåããŸãã¯æ¬åœã«å£ããŠããPythonæ§é ã䜿çšããŠããå Žåãããããã¡ã³ããã®1人ãããã§å°ã詳ãã説æããããšãã§ããŸããïŒ
ãããè¿œå ãããã®ã§ãããåé¡ãå®éã«ç解ããããšãã§ããªãããšãåä»ã§ãããåé¡ãç解ããããã«ãæåéãansible-playbook "insert yaml file here" > output.txt
ãå®è¡ããå¿
èŠããããŸããã
ããã®ã»ãšãã©ã®ãã¹ã¿ãŒã«åæããŸãã ã°ã«ãŒãåããããã·ã¥ãåé€ããããšã¯ãããèããããŠããªã決å®ããŸãã¯æå³è«çã§ã¯ãªãå®è£ ã«åºã¥ã決å®ã®ããã«æãããŸãã
ãã®å€æŽã¯ç§ã«ã¯ãŸã£ããæå³ããããŸããã Ansibleéçºè ã¯ãã°ã«ãŒãã«ã¢ã¯ã»ã¹ããããã®è¿œå ã®æ§æïŒæ¬ èœããŠããªãæ§æïŒãå¿ èŠãªãšããçç±ã ãã§ãäœåãã®ãŠãŒã¶ãŒã«ã°ã«ãŒãåã®å€æŽã匷å¶ããããšèããŠããŸããïŒ ããã¯åè«ã§ããïŒ
倧ããªã»ããã¢ããã§ã¯ããã·ã¥ãšãããã䜿çšããŸãã
ç§ãã¡ã®ãã¿ãŒã³ã¯product-name.environment.datacenter
ãããããã¯ç©äºãéåžžã«æ確ã«ããŸãã
-
ãš.
ãåé€ãããšãåšåº«ãå®å
šã«å€èªã§ããªããªããããæ³åã§ããŸããã
ããã·ã¥ãå«ãïŒãããŠä»åŸãå«ãïŒã°ã«ãŒãåãããŒã«ã«CMDBã«ç §äŒããansibleã€ã³ãã³ããªãã©ã°ã€ã³ã䜿çšããŠããŸãã ãããå°æ¥ç¡å¹ã«ãªããšãå€ãã®ãã®ãå£ããŠããŸããŸãã
倧ããªã»ããã¢ããã§ã¯ããã·ã¥ãšãããã䜿çšããŸãã
ç§ãã¡ã®ãã¿ãŒã³ã¯product-name.environment.datacenter
ãããããã¯ç©äºãéåžžã«æ確ã«ããŸãã
-
ãš.
ãåé€ãããšãåšåº«ãå®å šã«å€èªã§ããªããªããããæ³åã§ããŸããã
éå±€çãªåœåã¹ããŒã ïŒäŸïŒorg.company.product-name.componentïŒã§åæ§ã®ã¢ãããŒãã䜿çšããŠããŸãã
ã¢ã³ããŒã¹ã³ã¢ã«æ»ããªããã°ãªããªãã®ã¯çµ¶å¯Ÿçãªææã§ãã
ãµãµã ç§ãã¡ããã®åé¡ã«çŽé¢ããŸããã ã°ã«ãŒãåã«ã¯ããã·ã¥ãéäžçã«äœ¿çšããŠããŸãã
dictã§ã®ããã·ã¥ã®äœ¿çšãåå ã§ã©ã®ãããªåé¡ãçºçãããã説æã§ããã°å¹žãã§ã
ç§ã¯äž»ã«ä»ã®äººãèšã£ãããšãç¹°ãè¿ããŠããŸãããç§ã¯ããã€ãã®å ¥åãè¿œå ããããšæããŸããã ãã®å€æŽãå®è£ ããå Žåã¯ãããã·ã¥ãèš±å¯ãããã©ã°ãä¿æããŠç¶æããå¿ èŠããããšæããŸãã Pythonã¯ã¢ã³ããŒã¹ã³ã¢ãæ³å®ããŠããããšã¯ç解ããŠããŸããããã¹ãåãšãã¹ãã°ã«ãŒãåã«ã¯ããã·ã¥ãäžè¬çã«äœ¿çšãããŸãã ç§ãã¡ã®ç°å¢ã§ã¯ãLDAP / Kerberosãã£ã¬ã¯ããªå ã®ãã¹ããšãã¹ãã°ã«ãŒãããã€ã³ãã³ããªãåçã«çæããŸãã ãã¹ãåãšã°ã«ãŒãåãå€æŽããããšã¯å¯èœã§ããã奜ãŸãããªããããããã«ã€ããŠèšåããŸãã
ãã®æ©èœããªããã¢ãŠãããã«ã¯ã©ãããã°ããã§ããïŒ ããŒã«ã«ã®Ansibleãããã€ã¡ã³ãã¹ã¯ãªããã«ã¯ããã€ãã³ãå«ãã°ã«ãŒãåãæ£ãã°ã£ãŠããŸãã ãã¡ããããããè¡šèšã§ã¯äœ¿çšããŸããã ããããããããã¹ãŠãå€æŽããããšã¯ãæ¬åœã«éæ¹ããªãäœæ¥ã«ãªãã§ãããã ãªããã¢ãŠããããšåæã«ãå°æ¥çã«ãã€ãã³ã䜿çšããªãããã«ããŒã ã«å§ããå¯èœãªå Žåã¯ãã€ãã³ãã¢ã³ããŒã¹ã³ã¢ã«å€æããããšããå§ãããŸãããã®æåŸã®éšåã¯ãèŠãç®ã»ã©åçŽã§ã¯ãããŸããã
ããã§ãansible.cfgã«
force_valid_group_names = false
ããã ãã§ããïŒ ããã¯d241794ïŒdiff-fd24ad93fbc32f454761746c1ac908f2ã«åºã¥ããŠã§ã
Ansible 2.8.2ã§ãã¹ããããšããã®INIèšå®ã¯æåŸ ã©ããã«æ©èœããŸãããããã«ãããDEPRECATION WARNINGãåé€ãããã ãã§ãããAnsibleãæå¥ãèšããã«ããã·ã¥ã§ã°ã«ãŒãã䜿çšããããšãæãã§ããŸãã
ãªãã®çµæ
[éæšå¥šã®èŠå]ïŒTRANSFORM_INVALID_GROUP_CHARSèšå®ã¯ãããã©ã«ãã§ã°ã«ãŒãåã«äžæ£ãªæåãèš±å¯ããããã«èšå®ãããŠããŸããããã¯å€æŽãããŸãããéæšå¥šã®å Žåã§ããŠãŒã¶ãŒãæ§æã§ããŸãã ãã®æ©èœã¯ããŒãžã§ã³2.10ã§åé€ãããŸãã éæšå¥š
èŠåã¯ãansible.cfgã§deprecation_warnings = Falseãèšå®ããããšã§ç¡å¹ã«ã§ããŸãã
[èŠå]ïŒã°ã«ãŒãåã«ç¡å¹ãªæåãèŠã€ãããŸãããã眮ãæããããŸããã§ããã詳现ã衚瀺ããã«ã¯ã-vvvvã䜿çšããŠãã ãã
ãŸããansible.cfgã§èšå®ããfalseãã«
[èŠå]ïŒã°ã«ãŒãåã«ç¡å¹ãªæåãèŠã€ãããèªåçã«çœ®ãæããããŸããã詳现ã衚瀺ããã«ã¯ã-vvvvã䜿çšããŠãã ãã
ansible.cfg
[default]
force_valid_group_names = ignore
ãŸãã¯export ANSIBLE_TRANSFORM_INVALID_GROUP_CHARS=ignore
ããŠããAnsible2.8.1ã§ã¯æ©èœããªãããã§ãã ããã§ãéæšå¥šã®èŠåã衚瀺ãããŸãã$ ANSIBLE_TRANSFORM_INVALID_GROUP_CHARS=ignore ANSIBLE_VAULT_PASSWORD_FILE=vault-password.secret ansible-playbook --diff -i xyz-dev.ini xyz-infra-install.yml -l xyz-dev --check [DEPRECATION WARNING]: The TRANSFORM_INVALID_GROUP_CHARS settings is set to allow bad characters in group names by default, this will change, but still be user configurable on deprecation. This feature will be removed in version 2.10. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
ããã¯ãæå¹ãª
choices
ãŸã ãªã¹ããããŠããªãããã§ããïŒ https://github.com/ansible/ansible/blob/v2.8.1/lib/ansible/config/base.yml#L1501ããã¯ã次ã®ããŒãžã§ã³2.8.2ã§ä¿®æ£ããããã°ã§ãã ããªãã¯
export ANSIBLE_TRANSFORM_INVALID_GROUP_CHARS=ignore
ããããšãã§ããã§ãããããããŠããã¯ãã¹ãŠã®èŠåãæŒãã€ã¶ããŸããïŒç¡èŠãªãã·ã§ã³ã¯ãŸã ææžåãããŠããŸããïŒïŒ57318ïŒ
ããããããã¯åã«èŠåãæŒãã€ã¶ãã ãã§ããããããšãã°ã«ãŒãã§ããã·ã¥ã䜿ãç¶ããããšãã§ããŸããïŒ
ããã¯ããŸãæ確ã§ã¯ãããŸããã
ç§ã¯ããã®ãã¹ãŠã®æ¹å€è ã«åæããŸãã
ãã¬ã€ããã¯ãå£ãããšã«å ããŠãããã¯ç§ãansibleã§ã³ã³ãã³ã·ã§ã³ã®æ··ä¹±ãšåŒã¶ãã®ã«è²¢ç®ããŸãã äžéšã®å€ç«ããåå¿è ããããè¡šèšã®ãã€ãã³ã®åé¡ã«ééãããšããçç±ã ãã§ããã¹ãåãšã°ã«ãŒãåã®èŠåãç°ãªããŸããïŒ äœã ãšæã ïŒ åœŒãã¯ãŸã ããã«ã€ãŸããã§ãããããããŠãã®æ©èœã¯äººã ãæãããããšã«æåããåé¡ã解決ããŸããã§ããã ãã©ããŒã
Ansibleã°ã«ãŒãåã¯ãããããè¡šãå®äžçã®ã°ã«ãŒãã®ååãå°éã§ããå¿ èŠããããŸãã
ä»ã®ãã¹ãŠã®ããŒã«ããã¹ãã®ã»ããmy-backend-service
ãåŒã³åºãå ŽåãPythonã®åœåèŠåãæºããããã«ããªãansibleã¯ãããmy_backend_service
ã«å€æããããã«æŒç®åã«åŒ·å¶ããå¿
èŠããããŸãã
ä»æ¥ã¯æ¬åœã«æ²ããæ¥ã§ããJRã®ååãç§ã«ãã®éæšå¥šãæèµ·ãããšããç§ã¯AnsibleããŒã ããã®ãããªå©å·±çãªéžæãããããã«çŸå®ãšããã»ã©æ¥è§ŠããŠããªããšã¯æããŸããã§ããã ç§ã¯Ansibleãäœãéæã§ãããã絶察ã«æ°ã«å
¥ã£ãŠããŸãïŒPythonã§æžãããŠããããšãšã¯é¢ä¿ããªããŠãŒã¶ãŒã®èŠ³ç¹ããïŒãšã³ããŠãŒã¶ãŒã«PEPæšæºãããã·ã¥ããæ¹åæ§ã¯ãAnsibleéçºããŒã ã®ã³ã¢èœåã«å¯Ÿããå®å
šãªä¿¡é Œã倱ããŸããåççãªæ±ºå®ã IBMããããæ£ããŠãããããšãé¡ã£ãŠããŸãã
ãŸã
ãã¶ããç§ãã¡ã移åã§ããæ°ããå
æ²¢ã®ããGOã«çžåœãããã®ãããã§ãããã
ãã®æ¯ãèãã¯æããã«éåžžã«ç©è°ãéžããŠããã®ã§ããããå®äºããååŒã§ãããããããããã«ããå®è£ ãããã®ãã©ãããèªåããŠããŸãã
ãã®æ±ºå®ã®èåŸã«ãã人ã ããã®åçã«æè¬ãããããã¯Pythonã®æšæºçãªãã®ã§ãããè¶ ãã詳现ãæåŸ ããŠããŸãã
ãã®æ¯ãèãã¯æããã«éåžžã«ç©è°ãéžããŠããã®ã§ããããå®äºããååŒã§ãããããããããã«ããå®è£ ãããã®ãã©ãããèªåããŠããŸãã
ãã®æ±ºå®ã®èåŸã«ãã人ã ããã®åçã«æè¬ãããããã¯Pythonã®æšæºçãªãã®ã§ãããè¶ ãã詳现ãæåŸ ããŠããŸãã
ä»°ããšããã§ãã ã€ãæè¿ããgoããããžã§ã¯ãã人æ°ã®ãªãææ¡ããæ€åãããããïŒhttps://github.com/golang/go/issues/32437#issuecomment-512035919ãåç §ïŒããã®ãããªããšãåæ€èšããŠãæçµçã«ã¯åæ€èšããããšãã§ããŸãïŒå Žåã«ãã£ãŠã¯ããããå¿ èŠããããŸãïŒããŸããããã¯ã¢ãŠãããŸããã
ããã¯ããããããã®æ©èœã®å€æŽã ãã§ãªããèå³æ·±ããããã¯ãšãã£ã¹ã«ãã·ã§ã³ã§ããããŸãã 補åãšããŠã®Ansibleã®ã¬ããã³ã¹ãã©ã®ããã«æ©èœããããç解ããã®ã¯å°é£ã§ãã ããããã_誰ã_ãhttps://www.ansible.com/ansiblefestã«æã£ãŠããã¹ããã®ã¯ãã
ç§ãã¡ã®å€ãã¯é ãæ©ãŸããŠããã®ã§ãæåå/å€æ°ã®ã³ã³ãã³ã/ã°ã«ãŒãåãPythonã³ãŒãã£ã³ã°ã¹ã¿ã€ã«ã§ã©ã®ããã«åé¡ãåŒãèµ·ããå¯èœæ§ãããã®ãââç解ããŠããªãã®ã§ãã¡ã³ããããããã§è¿ä¿¡ãåãåãããªããããèµ·ããã®ããè°è«ããã®ã¯è¯ãããšã§ãåé¡ã
圌ããå€æ°ã®ååãšæ§é ã®ã³ãŒãã£ã³ã°ã¹ã¿ã€ã«ãç¶æããããã©ããã¯ç解ã§ããŸãããé åãŸãã¯å€æ°ã®å 容ã¯ããããŸããïŒ
ããã¯ãdictã®ãããè¡šèšã«ã€ããŠã®ç°¡åãªèª¬æã§ãã ããã¯å¯èœã§ãããéãã§ãã https://stackoverflow.com/questions/16279212/how-to-use-dot-notation-for-dict-in-python
ãããåãå·»ããµããŒãã®åé¡ããããšããäºå®ã¯ãç§ã®æèŠã§ã¯ãæ©èœã®åé¡ã§ã¯ãªããããã¥ã¡ã³ãã®åé¡ã§ãã ã©ã¡ãããšããã°ãã°ã«ãŒãåã¯å€æ°ã§ãã£ãŠã¯ãªããªããšç§ã¯äž»åŒµããŸãã
ãã®å€æŽã¯ãããã¥ã¡ã³ããå©çšå¯èœã«ãªãåã«å®è£ ããããšããäºå®ãåæ§ã§ãã
ãã®å€æŽã®åœ±é¿ã¯äœã§ããïŒ ã°ã«ãŒãåã«ããã·ã¥ãå«ãŸããŠããªãããšã確èªããããã«ããã¹ãŠã®Ansibleã€ã³ãã³ããªã泚ææ·±ãç·šéããå¿ èŠããããŸããïŒ
@CMoH IMOforce_valid_group_names = ignore
ãè¿œå ããansible2.8.2以éãå®è¡ããããšã§ãã
@skyscooby ãããã§ãPITAã§ãã ãã®è¡ãããã©ã«ããšããŠ/etc/ansible.cfg
ãä»ã®æ§æã®ãã¬ã€ããã¯ãã£ã¬ã¯ããªã§ããŒã«ã«ansible.cfg
ã䜿çšããããšã¯ã§ããŸããã ããã¯ãæ¢åã®ansible.cfg
ãã¡ã€ã«ããã¹ãŠå€æŽããå¿
èŠãããããšãæå³ããŸãã
ãŸãã¯ãïŒãŠãŒã¶ãŒç°å¢ã«å¥ã®å€æ°ãè¿œå ããã«ïŒã°ããŒãã«ããã©ã«ããèšå®ããæ¹æ³ã¯ãããŸããïŒ
@Cougarã¯ãAnsibleããã®ãã®éžæã
ãã ããåé¡ã¯ãã®èšå®ã«åºæã®ãã®ã§ã¯ãããŸãããåæ§ã®åé¡ãçºçããŸãããã»ãšãã©ã®èšå®ã¯cfgãã¡ã€ã«èšå®ããªãŒããŒã©ã€ãããç°å¢å€æ°ã§èšå®ã§ããããããããžã§ã¯ãããšã®ansible.cfgãã¡ã€ã«ã®äœ¿çšããå§ãããŸãããããã€ãã®ãããŸããªçç±ã«ã¯ãç¹å®ã®èšå®ãå¿ èŠã§ããENVã¡ãœããã䜿çšããããã«äŸé ŒããŸããããã«ãããå€æŽããå¿ èŠã®ãªãæ®ãã®èšå®ã¯ãäŒæ¥æšæºã«èšå®ããããŸãŸã«ãªããŸãã ãã®æšæºæ§æã§ããŒã¹Dockerã³ã³ãããŒãæ§ç¯ããåã ã®ãããžã§ã¯ãã¯ãããŒã¹ansibleã³ã³ãããŒã®ã€ã¡ãŒãžã«åºã¥ããŠãç¬èªã®Dockerfileã«ENVãšã³ããªãè¿œå ããã ãã§ãã ãã¹ãŠã®ansibleã¯ã³ã³ãããŒå ã§å®è¡ãããããããã¹ãŠã®pipã¢ãžã¥ãŒã«ãansibleããŒãžã§ã³ãããã³ã©ã³ã¿ã€ã ããŒã«ããšã³ãããŒãšã³ãã§åäžã§ããããšã確å®ã§ãã
ç·šéïŒããã«ãããæ°ããããŒãžã§ã³ã®ansibleãã¹ããŒãžã³ã°ããŠãäŒç€Ÿã®å šå¡ãåé¡ã«ã¶ã€ããåã«ããã®ãããªåé¡ãå¶åŸ¡ããããšãã§ããŸã:)
æããŸããã
ãã®æ©èœã¯å ã PRhttps ïŒ//github.com/ansible/ansible/pull/52748ã§è¿œå ãããæ©èœãªã¯ãšã¹ãhttps://github.com/ansible/ansible/issues/40581ããµããŒãããŠãããšãããŠã
ç®æšã®1ã€ã®èª¬æïŒ https ïŒ
ãã®çç¶ã®æåã®ããŒãžã§ã³ïŒåå ã¯ç°ãªããŸããïŒïŒ https ïŒ
ç·ãç§ã¯ä»äœåºŠãïŒ52748ãèªãã§ããŸãã
ç§ãç解ããŠããããã«ãã°ã«ãŒãåã¯ä»¥åã«ãã©ã°ã€ã³ãšã³ã¢ã§ãµãã¿ã€ãºãããŠããã誰ããïŒäœããã®çç±ã§ãçç±ã¯ãŸã ã¯ã£ããããŠããŸãããïŒã°ã«ãŒãåã¯Pythonå€æ°ã®åœåèŠåã«åŸãå¿ èŠããããšå€æããŸããã
ãã®ãããïŒ52748ã¯ä»£ããã«è¡çç¶æ ãåšåº«ã«æŒã蟌ã¿ãŸãããããã¯éåžžã«å€ãã®äººã ã«ãšã£ãŠç©äºãå£ããŸãã ç¹ã«ãAWSãAzureãªã©ã§å·§åŠãªåœåèŠåã䜿çšããŠãã¹ããã°ã«ãŒãã«ããããã人ã
ãã¹ãåã«åãæšæº/åœåèŠåã䜿çšãããšãå¢ãã倱ããããŠãŒã¶ãŒã倱ãããŸãã
ã°ã«ãŒãåã¯ååã§ãããå€æ°ã§ã¯ãããŸããã ïŒãã¹ãåãšåãããã«ïŒã°ã«ãŒãåã«ããã·ã¥ã䜿çšããããšã¯çã«ããªã£ãŠããŸãã 翻蚳ïŒè¡ç管çïŒã¯ãåšåº«ã¬ãã«ïŒç§ãã¡ããŠãŒã¶ãŒã«ããïŒã§è¡ãå¿ èŠã¯ãªããæåã®äžçã§ã¯å®éã«ã¯æ±ºããŠè¡ããªãã§ãã ããã
ãããå®æœããã¡ãªããã¯æ¬åœã«ããããŸããã è°è«ã¯ããããã«ããŒããŠããããã§ãã ããã³ãïŒãã¯ãã°ã«ãŒãåã§äœ¿çšããã®ã奜ããªäººãããŸãã å人çã«ã¯äœ¿çšããŠããŸãããã䜿çšããŠã害ã¯ãããŸããã
ã¯ã©ãŠããããã€ããŒãã¡ã¿æ å ±ã§ããã·ã¥ãåå©çšããŠããéããã°ã«ãŒãåã«ããã·ã¥ã䜿çšã§ããã¯ãã§ãã å®éã«ã¯ãããããã©ã€ããŒã§ããããã¹ãã§ã¯ãããŸããã ã°ã«ãŒãã«abcdeãšããååãä»ãããå Žåã¯ãå®éã«ã¯åé¡ã«ã¯ãªããŸããã ããã¯éåžžã«äŸ¿å©ãªåºåãæåã§ãã
ãã ãããã®ã¹ã¬ããã¯éçºè ãã¡ã³ãããã泚ç®ãéããŠããªãããã§ãã ç§ãã¡ã¯è³ãèãããªã人ãšè©±ããŠãããšæããŸãã
éçºè /ã¡ã³ããïŒã°ã«ãŒãåã«ããã·ã¥ãå ¥ããŠãã ããã
ããã€ãã®èª€è§£ãæ確ã«ããããã«ããããã®äžéšã¯ç§ã®ééããšæåã®ã¡ãã»ãŒãžãäžæ確ã«ããããšã«ãããã®ã§ãããææ°ããŒãžã§ã³ã¯äººã ãããã§æèµ·ãç¶ããåé¡ã®ããã€ãã«å¯Ÿããä¿®æ£ãæã£ãŠããŸããä»ã®ä¿®æ£ã¯ãŸã æ¥ãŠããŸãïŒ
ãããäžåºŠã ãèšããšãæããã«ãã°ã«ãŒãåã§ããã·ã¥ã䜿çšããããšãã§ããŸãããŸããããã©ã«ãã§ã¯ãªããçŸåšãç¡å¹ããšèŠãªãããŠãããããããã®ä»ã®æåã䜿çšã§ããŸãã ãã®ãããã©ã«ããã¯éæšå¥šã«ãªãã2.11ã§ã¯ããã©ã«ãã¯ãå®å šãã«ãªããŸãããå€ãåäœã«ããªããã€ã³ããããªãã·ã§ã³ãåžžã«ãããŸãã
ãããŠãç§ãã¡ãããã«æ¥ãæ¹æ³ãšçç±ã説æããããã«ïŒ
ãŸããã°ã«ãŒãåã¯åžžã«ãµãã¿ã€ãºãããŠããŸããã䜿çšããŠããã€ã³ãã³ããªã¿ã€ãã«å¿ããŠãäžè²«æ§ã®ãªãã«ãŒã«ãç°ãªã£ãŠããŸãããã¹ã¯ãªããã¯ããããšããã«ãããYAML圢åŒãšINI圢åŒã¯ããããç¬èªã®æ©èœãæãããŠããŸããã äž»ãªå€æŽç¹ã¯ãè¡çç¶æ ã®éäžåãšæ£åžžåãã§ãããããã¯2.4ã§æ±ºå®ãããŸãããã2.8ãŸã§å®å šã«ã¯å®è£ ãããŸããã§ããã ãã®æå³ã¯ãAnsilbeã§ãã¹ãŠãå®å šã«äœ¿çšã§ããåºæºãŸãã¯ããŒã¹ã©ã€ã³ãæäŸããããšã§ãããã€ãŸããå€æ°ã«ãå®å šã§ãªãããŸãã¯ãç¡å¹ãªãæåã䜿çšããŠãã人ãå€ãããšãèªèããŠããããããããã°ããŒãã«ã ãã§ãªããäžéšã®ã€ã³ãã³ããªãã©ã°ã€ã³ã
æåã®å®è£ ã«ã¯ããã€ãã®åé¡ãšå€ãã®è°è«ããããŸããïŒãããé衚瀺ã«ããããšã¯æ±ºå®ããŠããŸãããircã§å ¬éããŒãã£ã³ã°ãéå¬ããŠããŸããhttpsïŒ//github.com/ansible/community/blob/master /meetings/README.mdïŒããã³å€ãã®ãã£ãŒãããã¯ãçµã¿èŸŒãŸããŸããïŒãããããã°ã«èšé²ããããããæ»ã£ãŠãã£ã¹ã«ãã·ã§ã³ãšæšè«ã確èªã§ããŸãããããã°ãã³ãã¹ã¿ãŒãã€ãã³ã°ããé¿ããããã«ã以äžã§ã»ãšãã©ã®åé¡ã«ã€ããŠèª¬æããŸãïŒ ã 2.8ã«åºãŠãããå¥ã®ãã£ãŒãããã¯ããããããã©ã«ãã䜿çšãããšãã ãã§ãªããç¹ã«ããã¥ã¡ã³ããšèŠåã®æèšã§ãåžžã«éæšå¥šã«ãªããªã©ãããã€ãã®ãã°ãä¿®æ£ããŠããŸãã
ããªãPythonã®ååãªã®ãïŒã
äž»ãªçç±ã¯ãAnsibleãPythonãšJInjaïŒPythonã䜿çšïŒã䜿çšããŠãããã°ã«ãŒãã®äžéšã®äœ¿çšïŒäž»ã«åæã®äŸã§ããããµãŒãããŒãã£ã®äŸãå€æ°ãããŸãïŒã«ããããã¬ã€ããã¯ã«ãšã©ãŒãçºçããå¯èœæ§ããããŸããã€ãŸãã stuff: '{{ groups.gropup-name-with-dash ... }}'
ãŸãã¯ããã«æªãããšã«group.name.with.dots
ã ããã¯ããå€æ°ã¢ã¯ã»ã¹ã®ãããè¡šèšãã®Jinjaæ©èœã䜿çšãããå€ãã®ãŠãŒã¶ãŒã«æ··ä¹±ãåŒãèµ·ãããŸããããããããã©ã«ãããã¹ãŠã®ãŠãŒã¶ãŒã«ãšã£ãŠå®å
šã§ããå¿
èŠãããçç±ã§ãã ãã®æçš¿ã®ã»ãšãã©ã®äººã¯ããã«åæããªããããããŸããããããã¯å€ãã®äººã«ãšã£ãŠæ¬åœã®åé¡ã§ãããæ°ãããŸãã¯å€ãAnsibleãŠãŒã¶ãŒãåŸ
ã€ãçœ ãã§ãã£ãŠã¯ãªããŸããã ããªããã¢ãŠãããã人ã¯ãAnsibleã®ä»ã®éšåã§ã®ç Žå£çãªäœ¿çšãåé¿ãã責任ããããŸãã
ãååšåº«ã®è¡çç¶æ
ãç°ãªãããšãæ°ã«å
¥ã£ãå Žåã¯ã©ããªããŸããïŒã
ããã§ãããäžå€®ããµãããŒã·ã§ã³ããªãã«ããŠãç¹å®ã®ã€ã³ãã³ããªãœãŒã¹çšã«æå¹ã«ããããšãã§ããŸããå€ãã¹ã¯ãªããã眮ãæããæã人æ°ã®ããæ°ããã€ã³ãã³ããªãã©ã°ã€ã³ã«ã¯ãã¹ã¯ãªããã®åäœããšãã¥ã¬ãŒããããªãã·ã§ã³ãè¿œå ãããŠããŸããææªã®ã·ããªãªã§ããåŒãç¶ã䜿çšã§ããŸããã€ã³ãã³ããªã¹ã¯ãªããã
ããªããã¹ãåã§ã¯ãªã/次ã¯ãã¹ãåã§ããïŒã
ã°ã«ãŒãã®å Žåãšåæ§ã«ããã¹ãåã®ãµãã¿ã€ãºã¯åžžã«ååšããŸãããå€æŽãããŠããŸããããã¹ãåã«ã¯ãDNSã§è§£æ±ºå¯èœã§ãããªã©ãç°ãªãèŠä»¶ããããŸãã
ãããã¯ãŒã¯æ¥ç¶ãŸãã¯chrootæ¥ç¶ã®æå¹ãªãã¹ã®å Žåã ãŸãã幞ããªããšã«ããããè¡šèšã§ãã¹ãåã䜿çšããäŸã¯ã»ãšãã©ãŸãã¯ãŸã£ãããããŸãããããã¯äžè¬çãªæ¹æ³ã§ã¯ãªãã人ã
ãçªç¶ãã¹ãåã䜿çšãå§ããå Žåã«åé¡ã«ãªããŸãããã°ã«ãŒãåãšã¯ç°ãªããããã¯ãããŸã§é¿ããŠãããã®ã§ãã ä»åŸåé¡ãçºçããå ŽåâŠè¯ã解決çãèŠåœãããŸããã
ãã®ç¹å®ã®ãã±ããïŒååãªèª¬æ/æ å ±ã§ã¯ãããŸããïŒã¯ç§ããã§ã«å¯ŸåŠããŠãããã®ã§ããããšã«æ³šæããŠãã ãããããã«ä¿®æ£ãããããšãæãã§ããŸãã æ®ãã®è°è«ã«é¢ããŠã¯ãéçºè ã¯Githubããã©ãŒã©ã ãšããŠäœ¿çšããŸãããäžéšã®ãã±ããã¯ããã«å§è²ãããŸããéããããã¹ã¬ãããé·ãåã®ãã±ããã¯æè¿ãŸã§ç¡èŠãããŸãããããã¯äž»ã«ãéçºè ãéããããåé¡ãé€å€ãã IRCã®ã¡ãŒãªã³ã°ãªã¹ããŸãã¯æ°ããåé¡ã§ã®è°è«ãæåŸ ããŠãã ããã
ããã§ãã¹ãŠã®äž»èŠãªåé¡ã解決ãããããšãé¡ã£ãŠããŸãããã€ã§ã話ãåããã§ããã®ã§ãMLãŸãã¯IRCã«æ°è»œã«ç«ã¡å¯ã£ãŠãã ããããã®ãããªããšã«ã¯é©ããŠããªããããgithubã®äœ¿çšã¯é¿ããŠããŸãã
説æããŠãããŠããããšãã
ãããè¡šèšã®ãµããŒããåæ¢ããããã€ãã®ãªãªãŒã¹ã§ãã®ãµããŒããå»æ¢ããæ¹ãã¯ããã«ç°¡åã ã£ããšããŠããæéããããŠèª¬æããŠããã ãããããšãããããŸãã ã°ã«ãŒãåã«ç¡å¹ãªæåãå«ãŸããŠãã人ã®æ°ãšæ¯èŒããŠãããã䜿çšãã人ã¯å°ãªããªããŸãã ã»ã©ãŽã£
@skyscoobyåé¡ã¯ããããè¡ãã®ã¯Ansibleã§ã¯ãªããJinjaã§ãããšããããšã§ãã
ãããäžåºŠã ãèšããšãæããã«ãã°ã«ãŒãåã§ããã·ã¥ã䜿çšããããšãã§ããŸãããŸããããã©ã«ãã§ã¯ãªããçŸåšãç¡å¹ããšèŠãªãããŠãããããããã®ä»ã®æåã䜿çšã§ããŸãã
ããããŸãããããã¯ç¥ã£ãŠãããšè¯ãããšã§ãã説æã«æè¬ããŸãã ãã ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã¯æ¬åœã«æ¹åããå¿ èŠããããŸãã ããªãã«ã¯ãç¥èã®åªããããããŸãã ãããèŠããŠãŒã¶ãŒã®ç«å Žã§èªåãæ³åããŠã¿ãŠãã ããã
[éæšå¥šã®èŠå]ïŒTRANSFORM_INVALID_GROUP_CHARSèšå®ã¯ãããã©ã«ãã§ã°ã«ãŒãåã«äžæ£ãªæåãèš±å¯ããããã«èšå®ãããŠããŸããããã¯å€æŽãããŸããã
éæšå¥šæã«ãŠãŒã¶ãŒãæ§æå¯èœã ãã®æ©èœã¯ããŒãžã§ã³2.10ã§åé€ãããŸãã éæšå¥šã®èŠåã¯ãansible.cfgã§deprecation_warnings = Falseãèšå®ããããšã§ç¡å¹ã«ã§ããŸãã
[èŠå]ïŒã°ã«ãŒãåã«ç¡å¹ãªæåãèŠã€ãããŸãããã眮ãæããããŸããã§ããã詳现ã衚瀺ããã«ã¯ã-vvvvã䜿çšããŠãã ãã
ããã¯é·ãéã®ãã§ã
[éæšå¥šã®èŠå]ã°ã«ãŒãåãmy-serversãã«ã¯ã-ããå«ãŸããŠããŸããããã¯ãAnsible2.11ããããã©ã«ãã§ç¡å¹ã«ãªããŸãã ãããæå¶ããã«ã¯ãansible.cfgãŸãã¯ANSIBLE_TRANSFORM_INVALID_GROUP_CHARSç°å¢å€æ°ã®force_valid_group_namesããignoreãã«èšå®ããŸãã 詳现ã«ã€ããŠã¯ã httpsïŒ//docs.ansible.com/somethingãåç §ããŠ
...ããã¯ç§ããŠãŒã¶ãŒãšããŠæ¬åœã«èŠããã£ããã®ã§ãã ããã¯ç§ã1æé以äžæã£ãã§ãããã ããã§ããã®åé¡ãæ±ããŠããããŸãã¯ééããäºå®ã®äººã®æ°ãæããŸãã
ã°ã«ãŒãåã§ããã·ã¥ãšããããç¡å¹ã«ããããšã¯ãè³¢æãªããã©ã«ãã§ã¯ãããŸããã 人ã ã¯åžžã«åœŒãã®ã°ã«ãŒãåã«ããããæã£ãŠããŸãã è³¢æãªæ¯ãèããå¯èœã«ããããã«èšå®ãã¡ã€ã«ã«ããã«å¥ã®å€æ°ãèšå®ããããã«åœŒãã«èŠæ±ããããšã¯ãç§èŠã§ã¯åŒè·ã§ããŸããã
äžèšã®ã³ã¡ã³ããããããšã@bcoca ã ãããããé¡ãããŸãã
ç§ã¯ãã®æ±ºå®ã«æºè¶³ããŠããŸãããã話ãåããè¡ããã決å®ãäžãããããšãç解ããŠããŸãã 決å®ããŸã è°è«ã®äœå°ãããå Žåã¯ãã¡ãŒãªã³ã°ãªã¹ããŸãã¯ircã§ç¶è¡ããå¿ èŠããããŸããããã®åé¡ãææ¡ã§ããªãå¯èœæ§ããããŸãã
ãã®åé¡ã®ãããã¯ã«ã€ããŠã¯ããã®å€æŽã«æ³šæããããã«ãå ¬åŒããã¥ã¡ã³ããšç§»æ€ã¬ã€ãã§æ¬¡ã®æ å ±ãèŠã€ããããšæããŸãã
ãã¹ãŠã®ã°ã«ãŒãåãšãã¹ãåã«ããã·ã¥ã䜿çšããŠããããããå€æŽããªãããã§ãã ãã®ãããæ°ããã€ã³ã¹ããŒã«/ç°å¢ãã»ããã¢ãããããã³ã«ããªããã€ã³ããŠansible.cfg
ãå€æŽããå¿
èŠããããŸãã ããã¯ç§ã«ã¯æ®å¿µã§ãããã©ãã«ãããŠå¯ŸåŠããªããã°ãªããŸããã å°ãªããšãç§ãæåŸ
ããã®ã¯ããããããã«å¿ããŠææžåãããŠããããšã§ãã
ãã®å€æŽãè³¢æã§ãããã©ããã«ã€ããŠã®è°è«ãç¶ããããã«ãç§ã¯AnsibleDevelopmentã°ã«ãŒãã§ã¹ã¬ãããéããŸããã
ãããããé¡ãããŸãã
ããã³ã
ãã®åé¡ã«é¢ãããã¹ãŠã®è²¢ç®è ã«æè¬ããŸãã ããã§èªãã å 容ã«åºã¥ããŠãããã°æçš¿https://docs.sbarnea.com/ansible/naming-hosts-and-groupsãäœæããããšã«ããŸããããŠãŒã¶ãŒãäœãããå¿ èŠãããããèŠçŽããŠããã ããã°å¹žãã§ãã
@ loop-evgenyã³ã¢ããŒã ãšããŠã®ç§ãã¡ã«ã¯ãç¥èã®åªããããããããããã¹ãŠã®äººã«åœ¹ç«ã€ããã¥ã¡ã³ãããšã©ãŒãäœæããããšã劚ããŠããããšã«åæããŸãã ãŸããã³ãã¥ããã£ã«å®å šã«äŸåããŠãAnsibleã圢æããã§ããã ãå€ãã®ãŠãŒã¶ãŒãã·ã³ãã«ã«ä¿ã€ããšãã§ããããã«ããŠããŸãããã®ãããããã¥ã¡ã³ãããšã©ãŒ/èŠåã¡ãã»ãŒãžã®æ¹åã«é¢ããæšå¥šäºé ãããå Žåã¯ãåžžã«ã³ãã¥ããã£ãå©çšããŠã pullrequestã ãææããã ããã¡ãã»ãŒãžã¯ä»¥äžã®ãã¡ã€ã«ã«ä¿ç®¡ããŠãããŸãã®ã§ãå€æŽæ¡ãæ·»ããŠPRããéãããã ããã°å¹žãã§ã...
@jctanneréåžžãç§ã䜿çšããŠããç¡æã§äŸ¿å©ãªããã°ã©ã ãæ¹åããããã«ãPRãæåºãããŠããã ããŸãã ãããã䜿ãããããè¿ãã«åœŒãã®ç±æã«åããAnsibleéçºè ã®äžè¬çãªæ 床ã¯ãç§ã¯èªæã®ãã°ïŒã§ããã¶ã€ã³ã®ãã°ã®å ŽåïŒãšAnsibleã¯çŸåšã2000ã 2025ïŒæã£ãŠãããšããäºå®ã§ãããšèããŠããåé¡ãæå³ãããšããã«æ©èœããšããŠïŒïŒãªãŒãã³PRã¯ãç§ã®ä»äºãç¡é§ã«ãªããªããšãã確信ãã»ãšãã©äžããŠãããŸããã ããªããèšãããã«ãããªããæ¬åœã«ãã³ãã¥ããã£ã«äŸåãããããšãæããªããç§èŠã§ã¯å®è³ªçãªæåã®å€åãå¿ èŠã§ãã
ããŒã..ãã®ãã£ã³ã¹ãç§ã襲ã£ãã
æ®å¿µãªããããããã¯ãŒã¯åãã°ã«ãŒãåãšããŠäœ¿çšããŠãããããç°¡åã«å€æŽããããšã¯ã§ããŸããã ã°ã«ãŒãåã®ãããæ§æã·ã¥ã¬ãŒããªããã¢ãŠããããã®ã§ãããããã¯ç§ãä»ãŸã§äœ¿çšããããšã®ãªããã®ã§ãïŒä»ã®å€æ°ã§äœ¿çšããŠããŸããïŒã
å°æ¥çã«ã¯ansible-playbook whatever.yaml -l some.network.to.use
ã䜿çšããããšãæãŸããã§ãããã ãããã¯ãŒã¯ä»¥å€ã®ãã®ãã°ã«ãŒãåãšããŠäœ¿çšãããšããŠãŒã¹ã±ãŒã¹ã倧å¹
ã«åæžãããŸãã
ããã
ä»ã¯å°ãæ··ä¹±ããŠããŸãã å°æ¥ãã°ã«ãŒãåã«ç¡å¹ãªæåãèš±å¯ããããã«ã ansible.cfg
ã«äœãèšå®ããå¿
èŠããããæããŠããããŸããïŒ
force_valid_group_names = ignore
ãã®åé¡ãžã®ansibleregradingã®å°æ¥ã®ããŒãžã§ã³ã¯äœã§ããïŒ ãã€ãansibleã¯force_valid_group_names
ã䜿çšããåé¿çãªãã«ãã°ã«ãŒãåã®ãã¹ãŠã®ããã·ã¥ãæåŠããŸããïŒ ïŒå€æŽã«èŠããã§ããŠãã°ã«ãŒãåã«ãã€ãã³ã䜿çšããŠåé¡ã«èŠããã ããšã®ãªããŠãŒã¶ãŒããã®ãã£ãŒãããã¯ãèãããšãªãïŒ
ç³ãèš³ãããŸãããã @ bcocaããã®ã³ã¡ã³ããèªãã§ãå°æ¥å¿ èŠã«å¿ããŠãã€ãã³ã䜿çšã§ããããã«ãªãããšãå¬ããæããŸããããã§ååã§ãã
ããã
åãèŠåã衚瀺ãããŸãããäœãå€æŽããå¿
èŠãããã®ãââããŸãå€æŽããå¿
èŠãããã®ãââãããããŸããã
Pythonã«é¢é£ãããã®ã§ããïŒ
解決ããæ¹æ³ã¯ïŒ
force_valid_group_names = ignoreã§ç¡èŠããå Žåãããã¯å¿ èŠãªããšã§ãããAnsible> = 2.10ã«ã¢ããã°ã¬ãŒããããšïŒ
ããããã
ã»ã¶ãŒã«ãã«ã
ç§ããããæ£ããç解ãforce_valid_group_names = ignore
ãèšå®ããŠããŸã£ããåé¡ããªãããšãæå³ããŸãã
ãŸããã°ã«ãŒãåã«ããã·ã¥ãå¿ èŠãªãã®ãåŒãç¶ã䜿çšããããšããŸã£ããåé¡ãããŸããã Ansibleãå°æ¥å®è¡ããªãã®ã¯ããç¡å¹ãªãã°ã«ãŒãåã«å¯ŸããŠããããè¡šèšã䜿çšã§ããããã«ããããããµãã¿ã€ãºããããšã§ãã äŸãã°ïŒ
åšåº«ã«ã¯foo-bar.xyz
ãšããååã®ã°ã«ãŒããå«ãŸããŠããŸãã 次ã«ããã®ã°ã«ãŒãã«å±ãããã¹ãã®ãªã¹ããäœæãããã³ãã¬ãŒããäœæããŸãã
{% for host in groups['foo-bar.xyz'] %}
{{ host }}
{% endfor %}
次ã®ããŒãžã§ã³ã®ãã³ãã¬ãŒãã¯æ©èœããªãããšã«æ³šæããŠãã ããã
{% for host in groups.foo-bar.xyz %}
{{ host }}
{% endfor %}
ããã¯ããã®å Žåã -
ãš.
ãç¹å¥ãªæå³ãæã€ããã§ãã ãã ããã°ã«ãŒãã®ååãfoo_bar_xyz
ããã³ãã¬ãŒãã¯æ¬¡ã®ããã«ãªãããããããä»ãè¡šèšã¯ãŸã£ããåé¡ãããŸããã
{% for host in groups.foo_bar_xyz %}
{{ host }}
{% endfor %}
ãã¡ãããããã¯ãŸã£ããåé¡ãããŸããã
ãŠãŒã¶ãŒã«ãšã£ãŠç©äºãç°¡åã«ããããã«ãAnsibleã¯ã°ã«ãŒãåã«å¯ŸããŠåžžã«äœããã®è¡ç管çãè¡ã£ãŠããããã§ãã ããã¯ãã°ã«ãŒããå®éã«ã¯foo-bar.xyz
ãšåŒã°ããŠããŠããäžèšã®äŸã§foo_bar_xyz
ã䜿çšããããšãå¯èœã§ãã£ãããšãæå³ããŸãïŒ2.10ãŸã§ã¯ãŸã å¯èœã§ãïŒã å人çã«ã¯ãããã§ç©äºãç°¡åã«ãªããšã¯æããŸããããã³ã¢ããŒã ãããã«åæããŠããããã§ãã
ãããã£ãŠããã®åé¡ã«åãçµã次ã®è©Šã¿ã¯ããããããç¡å¹ãªãã°ã«ãŒãåãæã€ããšãäžå¯èœã«ããããšã§ãã ãã ããç§ãç解ããŠããéãã force_valid_group_names = ignore
èšå®ããããšã§ããã®å¶éããªããã¢ãŠãããããšã¯åžžã«å¯èœã§ãã
ç°¡åã«èšãã°ãå®éã«ã¯ãäºãã«çµ¡ã¿åã£ãŠãã2ã€ã®ç°ãªãå€æŽã§ã[1]ã èŠåã®çŽããããååãšèšãåãã
ç¹°ãè¿ããŸãããããã¯ç§ãåé¡ãç解ããæ¹æ³ã ãã§ãã ç§ãééã£ãŠããå Žåã¯ç§ãèšæ£ããŠãã ããïŒ
[1]詳现ã«ã€ããŠã¯ã RFC1925ãã©ã°ã©ã2ããã€ã³ãïŒ5ïŒãåç §ããŠãã ããã
ããã·ã¥>ã¢ã³ããŒã¹ã³ã¢ã®åŽã«ãã£ãããšããã®ã§ã2¢ãæ®ãããã£ãã ãã§ãã ãã®åé¡ã«ã€ããŠã°ãŒã°ã«ã§ç°¡åã«
ããã§ãªãå Žåã§ãããµãŒããŒã©ãã«ãã°ã«ãŒããªã©ã«ããã·ã¥ãã¢ã³ããŒã¹ã³ã¢ãããé »ç¹ã«äœ¿çšãããŠãããšããäºå®ã¯ãããããã¹ãŠã®ç§ã®ãã¹ãŠã«è¿œå ããå¿
èŠãããããã«å¥ã®ããšã«ãªãããšãæå³ããŸãã¯ã©ã€ã¢ã³ãã®ansible.cfg
ãã¡ã€ã«ïŒãã¬ã€ããã¯ããšã«1ã€æã€åŸåããããŸãïŒã
Ansibleããšã¯ã¹ããªãšã³ã¹ãåäžãããããã«ãããå³å¯ãªããã©ã«ãã匷å¶ããããšããŠãåé¡ã¯ãããŸããããæåã«ç§ã®åœ¹å²åã«ããã·ã¥ãå ¥ããŠïŒãããŠãç¥ç¶ãããå€ã圹å²ã«åäžã®äŸå€ãèš±å¯ããããšããããŸããïŒã次ã«ããã·ã¥ãå ¥ããŠæ¥ãŸããç§ã®ã³ã¬ã¯ã·ã§ã³ïŒãããã¯ãããªãæ¹æ³ã圢ã圢åŒã§ãèš±å¯ãããŠããŸããïŒããããŠä»ããªãã¯ç§ã®åšåº«ã«ããã·ã¥ã®ããã«æ¥ãŸããïŒ
ããã·ã¥ãšã®æŠãã§ã...ãããŠã©ããã«ç·ãåŒãããã®ã§ããããã®å Žåãåçåšåº«ãããã€ããŒã®å€ããã°ã«ãŒãããŒã¹ãäœæããŠãããããããã·ã¥ã®äœ¿çšãé²ãããšãå®éã«ã¯äžå¯èœãªå Žæã§ãããµãŒããŒåãšã©ãã«ãããã³å€ãã®ïŒã»ãšãã©ã§ã¯ãªãã«ããŠãïŒçµç¹ã¯ããã·ã¥ã䜿çšããŠç©äºã«ã©ãã«ãä»ããããã§ãïŒããšãã°ã us-east-1a
ã§ã¯ãªãus_east_1a
ïŒã
ãœãããŠã§ã¢ãæ©èœãããããã«ã»ãšãã©ã®å ŽåãªãŒããŒã©ã€ãããªããã°ãªããªãããã©ã«ããæã€ã®ã¯æ¥œããããšã§ã¯ãããŸããããAnsible 2.11ã®æç¹ã§ã¯ããããªããšæãããŸãã
Jinja2ãšPythonã«æ
£ããŠããªãäžéšã®ãŠãŒã¶ãŒãã something.with-some-dashes
ãç¡å¹ã§ããããšã«æ°ä»ããŠããªãããšãåå ã§ããå Žåã¯ããããã·ã¥ãããå Žåã¯ãèŸæžã¢ã¯ã»ã¹ã«è§ãã£ãè¡šèšã䜿çšããå¿
èŠããããŸããããšãã°ã something['with-some-dashes']
ãå¿
èŠã«å¿ããŠ2ã€ãæ··ããããšãã§ããŸããããã¯éåžžã«çŽç²ã§å
šäœè«çã§ã¯ãããŸããããããã«ãããã¹ãŠã®Rustéçºè
ã§ã¯ãããŸãã...
éåžžã«ããèšãã°ããžã§ãã ç§ã¯ããã§ããªãã«åŒ·ãåæããŸã-ãã®å€æŽã¯éåžžã«ç Žå£çã§ããã1åéãã®ç§»è¡ãå¿ èŠãšããã ãã§ãªããèšå€§ãªæ°ã®ãŠãŒã¶ãŒã®ã¯ãŒã¯ãããŒãå€æŽããŸãã Ansibleã¯ãã®ãŸãŸã§ã¯æ©èœããªããªããŸãã
ãã¹ãåã«ã¢ã³ããŒã¹ã³ã¢ãå«ããããšã¯ã§ããªããããæ£åžžãªäžçã§ã¯ãinventory_hostnameã«ã¢ã³ããŒã¹ã³ã¢ã匷å¶ããããšã¯ãããŸããã ããã¯ããã¹ãåã«ã¢ã³ããŒã¹ã³ã¢ãå«ããããšãã§ãããã°ã«ãŒãã«ãã€ãã³ãå«ããããšãã§ããªããããã€ã³ãã³ããªãéåžžã«äžè²«æ§ã®ãªããã®ã«èŠããããšãæå³ããŸãã
ããã©ã«ãã«åãæ¿ããªãã§ãã ããã
ããã
ç§ã¯ããã§ãŸãã
ãããã @ bcocaãåè¿°ããããã«ãã»ãšãã©ã®éçºè ã¯ããã§ãããã®è°è«ãå®æçã«èŠãŠããŸããããã®åé¡ã¯æ£ããããã¥ã¡ã³ãã«é¢ãããã®ã§ãããããå€æŽãè°è«ããã®ã«é©åãªå Žæã§ã¯ãªãå¯èœæ§ããããŸãã
è°è«ã®ããã«ã¹ã¬ããã«åå ããŠãã ããTRANSFORM_INVALID_GROUP_CHARSã®ããã©ã«ãèšå®ãå€æŽããã®ã¯è¯ãèãã§ããïŒ Googleã°ã«ãŒãã§ã
çŽ æŽãããç¹ãžã§ãã
ãœãããŠã§ã¢ãæ©èœãããããã«ã»ãšãã©ã®å ŽåãªãŒããŒã©ã€ãããªããã°ãªããªãããã©ã«ããæã€ã®ã¯æ¥œããããšã§ã¯ãããŸããããAnsible 2.11ã®æç¹ã§ã¯ããããªããšæãããŸãã
ããã¯ãããããã¹ãŠã®è°è«ããç§ã«ãšã£ãŠå€§ããªãã€ã³ãã§ãã 解決ããªããã°ãªããªãåé¡ã¯ç解ããŠããŸããã解決çã¯å¿ èŠãªãã®ãšã¯éã®ããã§ãã ããã«ããããµããŒãã¯ç°¡åã«ãªããŸããããŠãŒã¶ãŒã«ãšã£ãŠã¯å°é£ã«ãªããŸããããã¯éæ¹åã®ãœãªã¥ãŒã·ã§ã³ã§ãã
Jinja2ãPythonã«æ £ããŠããªãäžéšã®ãŠãŒã¶ãŒãäœãã«æ°ä»ããŠããªãããšãåå ã§ããå Žåã¯ãããã·ã¥ã䜿çšããŠç¡å¹ã«ããããšããå§ãããŸãããããã·ã¥ãããå Žåã¯ãdictã¢ã¯ã»ã¹ã«è§ãã£ãè¡šèšã䜿çšããå¿ èŠããããŸããäœã['with-some-dashes']ãå¿ èŠã«å¿ããŠã2ã€ãæ··ããããšãã§ããŸãã
ãããæåã®è§£æ±ºçã§ãããé·å¹Žäœ¿çšãããŠãããã®ãå£ãããšã¯ãããŸããã
@geerlingguyããã®
Ansibleã®ãŠãŒã¶ãŒãšããŠãããè¿œå ãããã®ã§ããããªãæå¹ãªPythonæ§æãäœã§ããããç¥ãå¿ èŠãããã®ã§ããïŒ é·ãéAnsibleã䜿çšããŠããã®ã§ãAnsibleïŒããã³ãã®ã¢ãžã¥ãŒã«ïŒãPythonã§èšè¿°ãããŠããããšãç解ããŠããŸããããªããããæ°ã«ããå¿ èŠãããã®ã§ããïŒ ãã®äºå®ããšã³ããŠãŒã¶ãŒã«å ¬éããã®ã¯æªãèšèšã§ãã
Webã¢ããªã±ãŒã·ã§ã³ã®ãŠãŒã¶ãŒåãªã©ã«æå¹ãªJavaScript / Ruby / .NET / whateverè¡šèšã®ã¿ãèš±å¯ããã®ãšåæ§ã§ãã ãšã³ããŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ãã©ã®èšèªã§æžãããŠããããæ°ã«ããã®ã¯ãªãã§ããïŒ
ããã«å ããŠãé倧ãªå€æŽãå°å ¥ããããšã¯é£ãããããã¯ã§ãããå¯èœã§ããã°ãããé¿ããããã«ããŠããŸãã å€æŽãå ããå¿ èŠãããå Žåã¯ãéåžžãå€ãæ¢åã®åäœãããã©ã«ãã®ãŸãŸã«ããŠãæ°ããåäœããªããã€ã³ã§ããããã«ããŸãã ãªããããããã§è¡ãããªãã£ãã®ã§ããïŒ æ§æãå€æŽããå¿ èŠãããã®ã¯ãªãã§ããããããšãåšåº«å šäœãæªåãããå¿ èŠãããã®ã§ããïŒ ãªããã®éã§ã¯ãªãã®ã§ããïŒ
ã·ã¹ãã ãå³å¯ã«æºæ ããããŒã¯ã³ãå éšã§å¿ èŠãšããå Žåãã·ã¹ãã ã¯å éšã§ããŒã¯ã³ãçæããå éšããŒã¯ã³ããŠãŒã¶ãŒããŒã¿ã«é¢é£ä»ããã«ãã¯ã¢ããããŒãã«ãäœæããå¿ èŠããããŸãã ãã®ããã«ããŠãAnsibleã¯å¿ èŠã«å¿ããŠããŒã¯ã³ã«ãŒã«ãå€æŽãããŠãŒã¶ãŒãžã®åœ±é¿ãå¶éã§ããŸãã ãŠãŒã¶ãŒã¯ãèªåãŸãã¯é¡§å®¢ãé©åãšèããããã«ãã€ã³ãã³ããªã圹å²ãªã©ã«ååãä»ããããšãã§ããå¿ èŠããããŸãã
ãã®å€æŽã¯ãïŒãµããŒãã¯ãšãªãæžããããã«ïŒæå³ããå¹æãšã¯éã«ãªãå¯èœæ§ãããããã«æãããŸãã
çŸåšããã¹ãåïŒDNSã§è§£æ±ºå¯èœã§ããå¿ èŠããããŸããã€ãŸããã¢ã³ããŒã¹ã³ã¢ãå«ãŸãªãïŒãšã°ã«ãŒãåïŒããã·ã¥ãå«ãŸãªãïŒã®äž¡æ¹ã§ïŒããã©ã«ãã§ïŒãµããŒããããŠããåºåãæåã¯ãããŸããã
ééããªããä»»æã®ãã¹ãã«èªç±ã«ååãä»ããå¿ èŠããããŸã
Elmiéãã14幎åã 2019幎16æ16ãã¯ãªã¹ãã£ã³Pointner [email protected]
escribióïŒ
ç§ããããç解ããã°
https://github.com/ansible/ansible/issues/56930#issuecomment-516863432
æ£ããã éæšå¥šãšãªãã®ã¯èªåã§ã
ã°ã«ãŒãåã®å€æã ããã¯ãforce_valid_group_namesãèšå®ããããšã¯ãŸã£ããåé¡ãªãã¯ãã§ããããšãæå³ããŸã
= 2.10以éã¯ç¡èŠããŸããããã·ã¥ãããªããäœã§ã䜿ãç¶ããããšãå šãåé¡ãªãã¯ãã§ã
ã°ã«ãŒãåã«ã¯å ¥ããŸããã Ansibleãå°æ¥å®è¡ããªãã®ã¯ããµãã¿ã€ãºããããšã§ã
ãããã¯ããç¡å¹ãªãã°ã«ãŒãåã«å¯ŸããŠããããè¡šèšã䜿çšã§ããããã«ããŸãã ã«ãšã£ãŠ
äŸïŒã€ã³ãã³ããªã«ã¯ãfoo-bar.xyzãšããååã®ã°ã«ãŒããå«ãŸããŠããŸãã ä»ããªãã¯æžããã
ãã®ã°ã«ãŒãã«å±ãããã¹ãã®ãªã¹ããäœæãããã³ãã¬ãŒãïŒ{ã°ã«ãŒãå ã®ãã¹ãã®ïŒ ['foo-bar.xyz']ïŒ }
{{ ãã¹ã }}
{ïŒ endforïŒ }ãã®ããŒãžã§ã³ã®ãã³ãã¬ãŒãã¯æ©èœããªãããšã«æ³šæããŠãã ããã
{groups.foo-bar.xyzå ã®ãã¹ãã®ïŒ ïŒ }
{{ ãã¹ã }}
{ïŒ endforïŒ }ããã¯ã-ãšããåå ã§ãã ãã®å Žåãç¹å¥ãªæå³ããããŸãã NS
ãã ãããããä»ãè¡šèšã¯ãã°ã«ãŒãã«
ãã³ãã¬ãŒãã次ã®ããã«ãªããããfoo_bar_xyzãšããååãä»ããŸãã{groups.foo_bar_xyzå ã®ãã¹ãã®ïŒ ïŒ }
{{ ãã¹ã }}
{ïŒ endforïŒ }ãã¡ãããããã¯ãŸã£ããåé¡ãããŸããã
ãŠãŒã¶ãŒã«ãšã£ãŠç©äºãç°¡åã«ããããã«ãAnsibleã¯æããã«åžžã«
ã°ã«ãŒãåã®ããã«ããã€ãã®è¡çç¶æ ãè¡ããŸããã ããã¯ããããã£ãããšãæå³ããŸãïŒãããŠ2.10ãŸã§
ããã§ãïŒäžèšã®äŸã§foo_bar_xyzã䜿çšããããšã¯å¯èœã§ãã
ãã®ã°ã«ãŒãã¯å®éã«ã¯foo-bar.xyzãšåŒã°ããŸãã å人çã«ã¯ããã¯ãªããšæããŸã
ç©äºããŸã£ããç°¡åã«ãªããã³ã¢ããŒã ãåæããŠããããã§ã
ãããšã
ãããã£ãŠããã®åé¡ã«åãçµã圌ãã®æ¬¡ã®è©Šã¿ã¯ã
ãããããç¡å¹ãªãã°ã«ãŒãåã ããããç§ãç解ããŠããéãã§ã¯
force_valid_group_namesãèšå®ããããšã«ããããã®å¶éããªããã¢ãŠãããããšãåžžã«å¯èœã«ãªããŸã
=ç¡èŠããŸããç°¡åã«èšãã°ãå®éã«ã¯2ã€ã®ç°ãªãå€æŽãè¡ãããŠããŸã
äºãã«çµ¡ã¿åã£ãŠãã[1]ã çŽããããååãšèšèé£ã
èŠåãç¹°ãè¿ããŸãããããã¯ç§ãåé¡ãç解ããæ¹æ³ã ãã§ãã ç§ãããå Žåã¯ç§ãä¿®æ£ããŠãã ãã
ééãïŒ[1]詳现ã«ã€ããŠã¯ãRFC1925ãåç §ããŠãã ããã
http://www.faqs.org/rfcs/rfc1925.html段èœ2ããã€ã³ãïŒ5ïŒâ
ããªããã³ã¡ã³ãããã®ã§ããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/ansible/ansible/issues/56930?email_source=notifications&email_token=AA5N2CJCIELW7JWHC6OJ35DQEQHSPA5CNFSM4HPRGLKKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AA5N2CIVT5PLD2QCAGGBK6LQEQHSPANCNFSM4HPRGLKA
ã
ç§ã®æ£çŽãªæèŠã§ã¯ãããã¯æ¬åœã«ééã£ã決å®ã§ãã ãããŠééã£ãçç±ã§ã ãµããŒããªã¯ãšã¹ãã®æ°ãæžããã®ã¯æ¬åœã§ããïŒ
ããŒã«ãšããŠã®Ansibleã¯ããšã³ããŠãŒã¶ãŒã«èšèªåºæã®è©³çŽ°ã課ãã¹ãã§ã¯ãããŸããã ç§ã¯ãã§ã«TerraformãGolangãåã«æŒãä»ããŠããããšã«ãšãŠãè ¹ãç«ãŠãŠããŸãããAnsibleãšãpythonicãã¹ã¿ã€ã«ã§ãåãããšãèµ·ãã£ãŠããŸãã 誀解ããªãã§ãã ãããç§ã¯GoãšPythonã®äž¡æ¹ã§éåžžã«ããŸãæ©èœããŸãããã³ãŒããšããŠã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã«é¢ããŠã¯ããªãæ°ã«ããå¿ èŠãããã®ã§ããããã ãããŠãYAMLã管çããã³ãŒãããŒã¹ã®åœ¢ç¶ã決å®ãããšããçŽæã¯ã©ããªããŸãããïŒ ãããŒã¿ãšããŠã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãèªã¿åããšå®è¡ãå¯èœããäœåºŠãèããããšããããŸã...ç§ãç¥ãéããYAMLã¯ããã·ã¥ãšã¢ã³ããŒã¹ã³ã¢ã®äž¡æ¹ããŸã£ããæ°ã«ããŸããã
ãšããã§ãã¢ã³ããŒã¹ã³ã¢ããµããŒãããŠããªããã®ã¯ãããããããŸãã ããã€ãã®æ¬åœã«éèŠãªãã®ã«èšåããã ãã§ãæåéããã¹ãŠã®ãã¹ãåãAWSãªãŒãžã§ã³ãããã³IDã å€æãçºçããªãã¯ãã®ãã¹ãŠã®äŸå€ãç¶æããŠé 匵ã£ãŠãã ãã...
ãããã®è·é¢ãã®ç¢ãäœãæ¹æ³ã«ã€ããŠã®è¿
éãªè§£æ±ºçãæ¢ããŠããã«æ¥ã人ãã¡ã«ããã ã®è¡ãè¿œå ããŸãã force_valid_group_names = ignore
ããªãã«ansible.cfg
ãšå¹žãã«ãªããŸãã
ç§ã®ç解ã§ã¯ããšã«ããã¹ããŒã¹ãå«ãå€æ°ã«ãããè¡šèšã䜿çšããããšã¯ã§ããŸãããã¹ããŒã¹ãå«ãå€æ°ãäœæããããšã¯ãããŸããããæ®å¿µãªãããjsonAPIå¿çãä»ããŠã¹ããŒã¹ãå«ãèŸæžããŒãè¿ããã³ããŒã¯ãããããããŸãã ç§ã«ãšã£ãŠè³¢æãªãªãã·ã§ã³ã¯ãè§æ¬åŒ§è¡šèšã«åãæ¿ããŠããããã§ãã force_valid_group_namesãç¡èŠããããã«èšå®ããŠãããã®å€æŽã§å°æ¥ä»ã«äœãèšç»ãããŠããããç¥ã£ãŠãã人ã¯ãä»åŸæªåœ±é¿ãåãŒããªãããšãé¡ã£ãŠããŸãã
ããã¯ãç¹ã«OpenstackïŒããã³AWSïŒã®ããã«åçã€ã³ãã³ããªãæäœããå Žåãããªãæããã決å®ã§ãã
ãçŠæ¢æåããå«ãã€ã³ã¹ã¿ã³ã¹åãšã¡ã¿ããŒã¿ããŒã¯ãå€ãã®å Žåãåºç€ãšãªãã¯ã©ãŠãããã€ã³ãã³ããªã¢ã€ãã ãã°ã«ãŒãå€æ°ãšããŠè¿ãããŸãã ããã«ãããã¡ã¿ã¿ã°ãã€ã³ã¹ã¿ã³ã¹IDã䜿çšããŠããªãŒãã管çããããšããå€ãã®OpenstackïŒããã³AWSïŒç®¡çè
ã«ãšã£ãŠã人çã¯å°çã«ãªããŸãã
ã€ã³ã¹ã¿ã³ã¹-8ca09c33-f255-440f-9544-b0ab318c79d9
meta-os_ubuntu
Ansibleã®éçºè
ã¯@geerlingguyã®æèŠãçå£ã«$env-$role-[0..99]
ãããªååã®ãã¹ããäœåããã人ã«ãšã£ãŠã¯æ¬åœã«æªãããšã ãšæããŸãã Ansibleã®å€§åäž»ããªã ããããã«ããã¹ãŠã®ååãå€æŽããããšã«ãªã£ãŠããŸããïŒ
@ssbarnea 1
groups.foo-group
ãªã©ã®ããããæ§æãã䜿çšããããšããŠãããŠãŒã¶ãŒã«ãšã£ãŠåé¡ãçºçããŸããããã¯ãŠãŒã¶ãŒãæåŸ ããããšãå®è¡ããŸããã ãã®ãããªå°ããªåé¡ã«ãã£ãŠåŒãèµ·ããããåé¡ããµããŒããªã¯ãšã¹ãã®æ°ã«ããããã®ãããªåé¡ãçºçããªãããã«ãã»ãŒãã¬ãŒãåãžã®éããã©ããŸãããç¡å¹ãªæåãšèŠãªããããã®ãä¿æãããå Žåã¯ããã®æ©èœããªããã¢ãŠãã§ããŸãã
ãŠãŒã¶ãŒã¯ã©ã®ãããã®æéãã®åäœããªããã¢ãŠãã§ããŸããïŒ ä»åŸã®ãã¹ãŠã®AnsibleããŒãžã§ã³ã§ãã®åäœãç¡å¹ã«ããæ°žç¶çãªæ§æãªãã·ã§ã³ã¯ãããŸããããããšã2.11ãŸã§ãããµããŒããããŸãããïŒ åžžã«ãªãã«ãããªãã·ã§ã³ãããéãããã®ãªãã·ã§ã³ãããã©ã«ãã§ãªã³ã«ãªã£ãŠããããšãå¬ããæããŸãã
ããã2.11以éã§å³ããå¶éã«ãªããšãçµç¹ã®å¶çŽã«çžãããŠãã顧客ã倱ãããšã«ãªããŸãïŒãã¹ãŠã®AnsibleãŠãŒã¶ãŒãäŒç€Ÿã§äœ¿çšãããåœåèŠåãæ瀺ããæš©éãæã£ãŠããããã§ã¯ãããŸããïŒã ãã®å€æŽã¯ãããã·ã¥ãé »ç¹ã«äœ¿çšãããåŸåãããã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ã®ç®¡çã«ansibleã䜿çšããŠãããŠãŒã¶ãŒã«ãšã£ãŠãé倧ãªèª²é¡ãããããããã§ãã
ããã§ã¹ã¬ããå šäœãèªãã§ããªã人ã«æãåºãããããã ãã«ã éçºã¡ãŒãªã³ã°ãªã¹ãã«ãã¹ã¬ããããããŸãïŒ https ïŒ//groups.google.com/forum/#ïŒtopic / ansible -devel / bjAcM9ferIw
ç§èŠãã®å€æŽã¯æ¬åœã«æªãéžæã§ããã ãã€ããŒãªãªãŒã¹ããŒãžã§ã³ã§ã®æå·è§£èªæ§æã®å€æŽã«ãããç°å¢ã§ã®Ansibleã®äœ¿çšãæ¡åŒµã§ããªããªããŸããã ãŠãŒã¶ãŒã®ãã¬ã€ããã¯ãå£ãããšãã«AnsibleãæŽæ°ã§ããªãããã§ãã
ãããã @ bcocaãåè¿°ããããã«ãã»ãšãã©ã®éçºè ã¯ããã§ãããã®è°è«ãå®æçã«èŠãŠããŸããããã®åé¡ã¯æ£ããããã¥ã¡ã³ãã«é¢ãããã®ã§ãããããå€æŽãè°è«ããã®ã«é©åãªå Žæã§ã¯ãªãå¯èœæ§ããããŸãã
@Tronde ïŒã¹ããŒãªãŒãæžãåã«å¯çš¿è ãšé¡§å®¢ã«çžè«ããŠã圱é¿ãç解ãã誰ãããœãªã¥ãŒã·ã§ã³ããããããŸããã ããã§ããã€ãèšåããŠããããã«ãããã¯ç§ãã¡ãäœåºŠãèŠã倱æãã補å管çã§ãã
ç¶æ³ã®äŸãšããŠã @ andyfellerã¯ãã®å€æŽã«ã€ããŠèª¬æããŠããŸãã
ç§ãã¡ã®ãµã€ãã§ã¯ããã«åé¡ããããŸãã
Red Hat Identity Managerãå€éšã€ã³ãã³ããªãšããŠäœ¿çšããŸãããå¶åŸ¡ã¯ããŸãããã¢ã³ããŒã¹ã³ã¢ã®ä»£ããã«ããã·ã¥ãä»ããå€ãã®ãã¹ãã°ã«ãŒããå«ãŸããŠããŸãã ããã¯å€æŽãããŸããïŒãããã®ååã䜿çšããŠååšããä»ã®ãã¹ãŠã®ãã®ã®ããïŒã
ãããã£ãŠã次ã®ãã®ãå¿ èŠã§ãã
åèãŸã§ã«PRhttps ïŒ//github.com/ansible/ansible/pull/66650 ïŒããããã©ãŒã¯ã¯ãããŸããïŒã¯2.10ïŒçŸæç¹ã§ã¯ïŒã®äºå®ã§ããã€ãŸããçŸåšãã®èŠåã衚瀺ãããŠãã人ã¯èª°ã§ãïŒ2.10ã«ã¢ããã°ã¬ãŒããããšãåã³ã圌ããèšå®ãããŸã§ïŒä»£ããã«èæ¬ã®é害ãæã€éå§ïŒPRãããŒãžããããšä»®å®force_valid_group_names = ignore
ã§ansible.cfg
ïŒã
å¯èŠæ§ã®ããã«æçš¿ããã ãã§ãã ç§ã¯ãŸã ãã£ãããšç§ã®èåŸã«ãããã ã以åè¡šæãŸã ããã·ã¥ããšã°ã«ãŒãåãçæããå€ãã®åçã€ã³ãã³ããªã¹ã¯ãªããïŒAnsibleèªäœãŸãã¯ä»ãå ¬åŒã£ãœããã³ã¬ã¯ã·ã§ã³ã«ç§»åã®äžéšïŒãããã®ã§ãããã¯ãŠãŒã¶ãŒãæµå¯Ÿçãªã®ããã©ã«ãã§ããããšãã®ä»ã®æå¹ãªDNSæåã
å®éã«ã¯ãAWSã§Ansibleã䜿çšãã人ã¯èª°ã§ããããã©ã«ãããªãŒããŒã©ã€ãããå¿ èŠããããŸãã
@geerlingguyããã¯æ£ããPRïŒã§ããïŒ ããããã®åé¡ã瀺ããŠããããã§ãã
åèãŸã§ã«ãããã¯19:06:55
ããå§ãŸãããã®ã³ã¢ããŒãã£ã³ã°ã§è°è«ã
@ apple4everãã£ãšããªã³ã¯ãæŽæ°ããŸãããhttpsïŒ//github.com/ansible/ansible/pull/66650ã§ãã
ã ããç§ã¯ãã§ã«çãããã/æŽããã/ãªã©ã®äºæã®å€ãã®ã³ã¡ã³ããèŠãŠããŸãããããã§ããã«ç§ã®åã®æçš¿ããªã³ã¯ããã€ããã§ãã
https://github.com/ansible/ansible/issues/56930#issuecomment -516863432
ãã§ã«åçæžã¿ã®ä»¥åã®æçš¿ãé衚瀺ã«ããããããã£ã¹ã«ãã·ã§ã³çšã®æ°ããã¢ã€ãã ãè¿œå ããªãæ°ããæçš¿ãè¿œå ããªãã§ãã ããã
ã¡ãªã¿ã«ãæå¹ãªå€æ°åãã©ã®ããã«èŠãããã«ã€ããŠãPythonããã¥ã¡ã³ãã®ã©ãã«ãªã³ã¯ããã®ãè¯ãã§ããããïŒ https://docs.python.org/3/reference/lexical_analysis.html#grammar -token-identifierããã
質åããçç±ã¯ãå®éã®æåã®èŠæ
ãå®éã«åŠçããããã©ããããããªãããã§ãã äœãããããããšããèŠåããããŸãããæ£ç¢ºã«äœãããããŠã©ã®ããã«ïŒåãã§ãŸãã¯å¯èœã§ããã°ïŒå®éã«æå¹ãªã°ã«ãŒãåãéžæã§ããããèŠã€ããã«ã¯ãå€ãã®æãäžããå¿
èŠã§ãã å°ãªããšãæ確ãªãã°ã«ãŒãåfoo-bar
ã«ç¡å¹ãªæåïŒ -
ïŒãå«ãŸããŠããŸããæå¹ãªã°ã«ãŒãåã¯æå¹ãªPythonèå¥åã§ããå¿
èŠããããŸãïŒè©³çŽ°ã«ã€ããŠã¯https://docs.python.org/???
ãåç
§ïŒã ãæªãæåããããŸãã-vvvvã§ããäžåºŠç¢ºèªããŠãå®éã«æåãèŠã€ããŠãã ããïŒããšããã¡ãã»ãŒãžã ãã§ã¯ãããŸããã çæ³çã«ã¯ãããã¯ç¡å¹ã«ã§ããããšã«ãèšåããŸãããä»ã®äºæããªãåé¡ã«ã€ãªããå¯èœæ§ããããŸãïŒAnsibleãã°ã«ãŒãfoo-bar
ã foo.bar
ãããã³foo_bar
ãåºå¥ããã®ãéåžžã«å°é£ã«ãªããªã©ïŒ ïŒã
çŸåšãããã¯ãããªãã¯äœãééã£ãããšãããŸããããããä¿®æ£ããŠãã ããããšããã¡ãã»ãŒãžã§ãããã©ã®ããã«é²ãããã«ã€ããŠæ確ãªæ¹æ³ã瀺ãããŠããŸããããããããã§ã®åŒ·ãåå¿ã«è²¢ç®ããå¯èœæ§ããããŸãã
@geerlingguyã¯ã³ã¡ã³ã56930ã«æžããïŒ
ïŒansible.cfgã§force_valid_group_names = falseãèšå®ãããŸã§ïŒ
ããã¥ã¡ã³ãã«ã¯ããã®ããŒã®æå¹ãªå€ãšããŠãfalseãã¯èšèŒãããŠããŸããã å€ããignoreãã«èšå®ããŸãããããã§ããŸãããã¯ãã§ãã ãããããfalseãã¯ç¡å¹ãªããŒã¯ãŒãã§ããããããšãæ£ãããããã¥ã¡ã³ãã¯ããã§å®å šã§ã¯ãããŸãããïŒ
åã®ã³ã¡ã³ãã®@bcoca ïŒ
ãããäžåºŠã ãèšããšãæããã«ãã°ã«ãŒãåã§ããã·ã¥ã䜿çšããããšãã§ããŸãããŸããããã©ã«ãã§ã¯ãªããçŸåšãç¡å¹ããšèŠãªãããŠãããããããã®ä»ã®æåã䜿çšã§ããŸãã ãã®ãããã©ã«ããã¯éæšå¥šã«ãªãã2.11ã§ã¯ããã©ã«ãã¯ãå®å šãã«ãªããŸãããå€ãåäœã«ããªããã€ã³ããããªãã·ã§ã³ãåžžã«ãããŸãã
çŸåšã®åäœãç¶æã§ãããšç¹°ãè¿ãè¿°ã¹ãŠããŸããããããã_ä»_å®è¡ããŠéæšå¥šã®èŠåã朰ãããã«å¿ èŠãªæ£ç¢ºãªansible.cfgèšå®ã¯äœã§ããã
@geerlingguyãã³ã¡ã³ã56930ã«æžããããã«ç§ã¯è©ŠããŸããïŒ
ïŒansible.cfgã§force_valid_group_names = falseãèšå®ãããŸã§ïŒ
ããã«ããããã€ãã³ä»ãã®ãã¹ããŸãã¯ã°ã«ãŒããèŠã€ãããªãå Žåã«ãã¬ã€ããã¯ã倱æããŸãïŒãããã¯ããšããã§äœæããã€ã³ãã³ããªãã©ã°ã€ã³ããååŸãããŸããããããå€æãè¡ãå¿ èŠããããŸããããŸãã¯Ansibleãã€ã³ãã³ããªãåã蟌ããšãã«å®è¡ãããŸãïŒãã©ã°ã€ã³ïŒïŒ
@geerlingguyãã³ã¡ã³ã56930ã«æžããããã«ç§ã¯è©ŠããŸããïŒ
ïŒansible.cfgã§force_valid_group_names = falseãèšå®ãããŸã§ïŒ
ããã«ããããã€ãã³ä»ãã®ãã¹ããŸãã¯ã°ã«ãŒããèŠã€ãããªãå Žåã«ãã¬ã€ããã¯ã倱æããŸãïŒãããã¯ããšããã§äœæããã€ã³ãã³ããªãã©ã°ã€ã³ããååŸãããŸããããããå€æãè¡ãå¿ èŠããããŸããããŸãã¯Ansibleãã€ã³ãã³ããªãåã蟌ããšãã«å®è¡ãããŸãïŒãã©ã°ã€ã³ïŒïŒ
ããã¯ããã€ãã®ã³ã¡ã³ãã§èšåãããŠãããããã¥ã¡ã³ãã«ãã決ããŠäœ¿çšãç¡èŠããå¿ èŠããããŸãã
ã§ã¯ããã¹ãŠããus-east-1ãããus-east-2ããªã©ã§ã°ã«ãŒãåãããããEC2åçã€ã³ãã³ããªã¹ã¯ãªããã䜿çšããå¿ èŠã¯ãããŸãããïŒ ãããšãæŽæ°ããäºå®ã¯ãããŸããïŒ EC2åçã€ã³ãã³ããªã¹ã¯ãªããã«é¢ããAnsibleã®ããã¥ã¡ã³ãã«ã¢ã¯ã»ã¹ããŸããããGithubã«ããŠã³ããŒãããããã®ãªã³ã¯ãæ©èœããªããªã£ãã®ã§èå³æ·±ãã§ãã
EC2åçã€ã³ãã³ããªã¹ã¯ãªããã«é¢ããAnsibleã®ããã¥ã¡ã³ãã«ã¢ã¯ã»ã¹ããŸããããGithubã«ããŠã³ããŒãããããã®ãªã³ã¯ãæ©èœããªããªã£ãã®ã§èå³æ·±ãã§ãã
https://github.com/ansible/ansible/issues/68419ãåç §ããŠ
IRCãã°ãããããèªãŸãªãæ¹ã®ããã«ãããã«æ±ºå®ããããŸããã€ãŸãã決å®ã¯ãããŸããã
19:15:40 <sivel> I've got to say, that brining this topic up all the time isn't a good use of time
19:15:52 <cyberpear> bcoca nominated it
19:16:07 <felixfontein> I think the aim was to solve this once and for all (like, again :) )
19:16:29 <cyberpear> since bcoca is not here, move on to next topic?
19:16:34 <sivel> honestly, I don't think this is going to be the right forum to make a decision on this
19:16:45 <jillr> +2 moving on
19:16:47 <cyberpear> sivel: what's the correct forum?
19:16:55 <felixfontein> sivel: what is the right forum for making that decision?
19:17:02 <cyberpear> "declaration from Red Hat On High"?
19:17:15 <sivel> I'm going to abstain on that, but this project is not a democracy
19:17:16 <cyberpear> -1 to "declaration from Red Hat On High"
19:17:24 <sivel> too many cooks in the kitchen distract
19:17:45 <sivel> We know the arguments at this point
19:17:59 <sivel> anywho, next topic
ã¯ãã誰ãããMLãŸãã¯IRCã«æ°è»œã«ç«ã¡å¯ã£ãŠãã ããããšæžããŠããŸãã ããããããã®ãããžã§ã¯ãã¯æ°äž»äž»çŸ©ã§ã¯ãããŸãããã
ã¯ãã誰ãããMLãŸãã¯IRCã«æ°è»œã«ç«ã¡å¯ã£ãŠãã ããããšæžããŠããŸãã ããããããã®ãããžã§ã¯ãã¯æ°äž»äž»çŸ©ã§ã¯ãããŸãããã
æ£çŽãªãšãããããã¯ãªãŒãã³ãœãŒã¹ã§ã¯ééã£ãŠããŸã-ãããäžè¬çã§ãªãæ¹æ³ã«ã€ãªããå Žå-人ã ã¯ããããã©ãŒã¯ããããšãã§ããŸããããã¯ãã©ãŒã¯ã§ããŸããïŒ
ansibleã§PRãåãå ¥ããã®ã¯ã²ã©ãé ãããšãããããŸãã ãããã¯æããã«å¿ èŠã§åçŽãªå€æŽã®ããã«èŠããŸããã決ããŠå ¥ããŸããã幞ããªããšã«ãansibleèªäœã¯æè»æ§ããããã«ã¹ã¿ã ãã©ã°ã€ã³ã䜿çšã§ããŸãããå€ããªã£ãŠãããšè²¢ç®ãå°ãªããªãããããã«é¢åã«ãªããŸãã
å°ãæ²ããæ°æã¡ã§ãæ¬åœã«...
@ sunshine69ããªãã®çã¿ãæããŸãã ããããããã¯IRCãŸãã¯Google Group for AnsibleDevelopmentã§è¡ãããã¹ãè°è«ã§ãã
ãã®åé¡ã¯é©åãªå Žæã§ã¯ãããŸããã ãããèªã人ã¯ã»ãšãã©ããªãããã§ãã
@ sunshine69ããªãã®çã¿ãæããŸãã ããããããã¯IRCãŸãã¯Google Group for AnsibleDevelopmentã§è¡ãããã¹ãè°è«ã§ãã
ãã®åé¡ã¯é©åãªå Žæã§ã¯ãããŸããã ãããèªã人ã¯ã»ãšãã©ããªãããã§ãã
ãããã®ä»ã®ãã£ãã«ã§ã¯è°è«ãããçç£çã«ãªãå¯èœæ§ããããŸãããç¹ã«ãã®åé¡ããã©ããŒããŠãã人ã ã«ã¯éææ§ãé«ãè©äŸ¡ãããŠããŸãã çµå±ã®ãšãããIRCã¯ãã¹ãŠã®äººã®å¥œã¿ã§ã¯ãããŸããã
åèïŒ TRANSFORM_INVALID_GROUP_CHARSã®éæšå¥šã®åé€ã¯æšæ¥ããŒãž
説æã§èå¥ããããã¡ã€ã«ïŒ
ãããã®ãã¡ã€ã«ãæ£ãããªãå Žåã¯ã説æã®component name
ã»ã¯ã·ã§ã³ãæŽæ°ãããã !component
ãããã³ãã³ãã䜿çšããŠãã ããã
ãããã®ãã«ãã«ã€ããŠã¯ããããã¯ãªãã¯ããŠãã ãã
force_valid_group_names = ignore
ãèšå®ãããšãèŠåã¯æ¶ããŸããããå»æ¢éç¥ã¯æ¶ããŸããã§ããã
æåŸã«ç§ã¯ããã¥ã¡ã³ãã§èŠã€ããŸããïŒ force_valid_group_names = silently
ããã¯çœ®ãæããè¡ããåºåãè©°ãŸãããŸãã-ãããããªããæ¢ããŠããããšãªãã
ããã§ãããã®ãããªç¡æå³ãªå€æŽãæåããè¡ãããŠããªããã°ããã®åé¡å šäœãæåããåé¿ã§ããã¯ãã§ãã
@ emmm-dee-ãã®ç¹å®ã®åé¡ã«ã€ããŠã httpsïŒ//github.com/ansible/ansible/issues/70908ãéããŸããâãæå¹ãªãã°ã«ãŒãæåã®å ¬åŒããã¥ã¡ã³ãããŸã ãªãããããã®åé¡ã¯åŒãç¶ãçºçããããšã«æ³šæããŠ
@geerlingguyã®ã¢ã¯ã·ã§ã³ã«æè¬ããŸãïŒ ããªãã¯ansibleãããè¯ãããŠãã人ã§ãã
ããŠã³ã¹ïŒéå§/åæ¢ïŒçšã®ã¢ããªã±ãŒã·ã§ã³ã§äœæ¥ããŠããŸãããã¢ããªã±ãŒã·ã§ã³ãã¹ãã«æ¥ç¶ããŠããŸããã
éä¿¡ããpingã³ãã³ããè©ŠããŠã¿ãŸãããåäœããŸã...
[ webadmin @ vlodjumpts00ã ] $ ping 8.8.8.8
PING 8.8.8.8ïŒ8.8.8.8ïŒ56ïŒ84ïŒãã€ãã®ããŒã¿ã
8.8.8.8ãã64ãã€ãïŒicmp_seq = 1 ttl = 112 time = 10.6 ms
[ webadmin @ vlodjumpts00ã ] $ mirrorlist.centos.org
-bashïŒmirrorlist.centos.orgïŒã³ãã³ããèŠã€ãããŸãã
ãããç§ãã¡ã®çµç¹ã«äœ¿çšããããšæããŸãããansibleall-mpingãã³ãã³ããå®è¡ããå Žåã ãšã©ãŒã«çŽé¢ããŠããã以äžã¯è©³çŽ°ã§ãïŒ
[ aa63457 @ vlodjumpts00 bin] $ ansible all -m ping
å€æŽãããŸãããéæšå¥šã®å Žåã§ããŠãŒã¶ãŒãæ§æã§ããŸãã ãã®æ©èœã¯ããŒãžã§ã³2.10ã§åé€ãããŸãã éæšå¥šã®èŠåã¯æ¬¡ã®ããã«ãªããŸã
ansible.cfgã§deprecation_warnings = Falseãèšå®ããããšã§ç¡å¹ã«ãªããŸãã
RTE3EPAdmin | å°éäžèœïŒ => {
"changed": false,
"msg": "Failed to connect to the host via ssh: ###############################################################################\n# CenturyLink computers and the CenturyLink computer network are CenturyLink #\n# property. Only authorized persons may use them and only for legal and proper#\n# purposes as determined solely by CenturyLink. You consent to the monitoring #\n# of their use. You must use CenturyLink computers and the network in #\n# accordance with the CenturyLink Code of Conduct, subject to discipline for #\n# misuse. Customer use is governed by the CenturyLink Acceptable Use Policy. #\n###############################################################################\nUse CTL credentials (login/password) on this server.\nAUTH-NOTICE:\nAUTH-NOTICE: Use your cuid as your username\nAUTH-NOTICE:\nPermission denied (publickey,password).",
"unreachable": true
}
ããŒã«ã«ãã¹ã| æå=> {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
ç§ãå©ããŠãã ãã...ç§ããããããããã«å¿ èŠãªããšã å®éã«ã¯ããã¹ããã·ã³ãæ¥ç¶ããããã®ãã¹ããã¡ã€ã«ã®UN / PWDã¯ãããŸããã
ããŒã«ã«ãã¹ãansible_connection = local
[RTE3VFO]
RTE3VFOAdmin ansible_host = vlddwblasts001.test.intranet
RTE3VFOManaged ansible_host = vlddwblasts002.test.intranet
[RTE3EP]
RTE3EPAdmin ansible_host = vlddwblasts002.test.intranet
RTE3EPManaged ansible_host = vlddwblasts003.test.intranet
[RTE3RES]
RTE3RESAdmin ansible_host = vlddwblasts003.test.intranet
RTE3RESAManaged ansible_host = vlddwblasts004.test.intranet
[RTE3ORCH]
RTE3ORCHAdmin ansible_host = vlddwblasts004.test.intranet
RTE3ORCHManaged ansible_host = vlddwblasts005.test.intranet
[RTE3EASE]
RTE3EASEAdmin ansible_host = vlddwblasts005.test.intranet
RTE3EASEManaged ansible_host = vlddwblasts006.test.intranet
[RTE3RTS]
RTE3RTSAdmin ansibke_host = vlddwblasts006.test.intranet
[EASE-ASR-Test2ïŒchildren]
RTE3VFO
RTE3EP
RTE3RES
RTE3ORCH
RTE3EASE
RTE3RTS
ãã£ã¬ã¯ããªæ§é ã¯æ¬¡ã®ãšããã§ãã
[ webadmin @ vlodjumpts00 ansible] $ pwd
/ etc / ansible
[ webadmin @ vlodjumpts00 ansible] $ ll
åèš84
-rw ------- 1 webadmin webadmin 607 2017幎7æ12æ¥1
-rw-r--r-- 1 webadmin webadmin 17910 Sep 19 09:55 ansible.cfg
-rw-r--r--1ã«ãŒãã«ãŒã19985 2019幎12æ8æ¥ansible.cfg.rpmnew
-rw ------- 1 webadmin webadmin 213 2017幎7æ3æ¥easeasr-rte2-ease.yml
-rwxr-xr-x 1 webadmin webadmin 1034 Sep 19 09ïŒ16ease-hosts
-rwxr-xr-x 1 webadmin webadmin 16479æ19æ¥10:50ãã¹ã
-rw ------- 1 webadmin webadmin 2679 2017幎7æ3æ¥hosts.bkp
-rw ------- 1 webadmin webadmin 273 2017幎7æ6æ¥lineinsfile_tst.yml
drwx ------ 4 webadmin webadmin 4096 2017幎11æ2æ¥ãã¬ã€ããã¯
drwxr-xr-x3ã«ãŒãã«ãŒã2019幎12æ8æ¥åœ¹å²
-rwxr-xr-x 1 webadmin webadmin 7321 2017幎11æ2æ¥servmix_hosts
-rw ------- 1 webadmin webadmin 208 Sep 19 10:55 test.yml
-rw ------- 1 webadmin webadmin 122 Sep 19 10:54 vars.yaml
ãã¹ãã«çŽæ¥æ¥ç¶ãããŠããŸãã...æåã«ãžã£ã³ããµãŒããŒã«ãã°ã€ã³ããsshãã¹ãããã...
ãžã£ã³ããµãŒããŒã¯ã= 22ãæ¥ç¶ã¿ã€ã= sshã䜿çšãããvmdcltctws217ãããŒãã§ãã
ããããç§ãã¡ã®UN / PWDã§å ¥ããŸã
ãã®åŸããã¹ããµãŒããŒãžã®æ¥ç¶ã«sudoãå®è¡ããŸããã
sudo su-easesqa
次ã«ãã®ãããªsshãã¹ããµãŒããŒã
vlddwblasts001.test.intranet
次ã«ãããããstart / stopã³ãã³ããå®è¡ããŸãã
ç§ãå©ããŠãã ãããç§ã¯ãããäœã®ããã«è¡ãããšãã§ããŸããïŒ
æãåèã«ãªãã³ã¡ã³ã
ã°ã«ãŒãåããããã·ã¥ãåé€ããçç±ã¯äœã§ãããïŒ ç¹ã«ããã«ã¯å€ãã®ã³ãŒããªãã¡ã¯ã¿ãªã³ã°ãå¿ èŠã«ãªããããç§ã¯ãã®æ£åœãªçç±ãèŠã€ããã®ã«æ¬åœã«èŠåŽããŠããŸãã