æ©èœã®ã¢ã€ãã¢
sshå¶åŸ¡ã¯æç¶ããŸã
2.0
ec2ãã©ã°ã€ã³ã䜿çšããããšãããšãsshã¯æ¬¡ã®ãšã©ãŒã§å€±æããŸãã
SSH Error: unix_listener: "/Users/luke/.ansible/cp/ansible-ssh-ec2-255-255-255-255.compute-1.amazonaws.com-22-ubuntu.CErvOvRE5U0urCgm" too long for Unix domain socket
å®å šãªäŸã¯æ¬¡ã®ãšããã§ãã
$ ansible -vvvv -i ec2.py -u ubuntu us-east-1 -m ping
<ec2-255-255-255-255.compute-1.amazonaws.com> ESTABLISH CONNECTION FOR USER: ubuntu
<ec2-255-255-255-255.compute-1.amazonaws.com> REMOTE_MODULE ping
<ec2-255-255-255-255.compute-1.amazonaws.com> EXEC ssh -C -tt -vvv -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/Users/luke/.ansible/cp/ansible-ssh-%h-%p-%r" -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 ec2-255-255-255-255.compute-1.amazonaws.com /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1436458336.4-21039895766180 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1436458336.4-21039895766180 && echo $HOME/.ansible/tmp/ansible-tmp-1436458336.4-21039895766180'
ec2-255-255-255-255.compute-1.amazonaws.com | FAILED => SSH Error: unix_listener: "/Users/luke/.ansible/cp/ansible-ssh-ec2-255-255-255-255.compute-1.amazonaws.com-22-ubuntu.CErvOvRE5U0urCgm" too long for Unix domain socket
while connecting to 255.255.255.255:22
It is sometimes useful to re-run the command using -vvvv, which prints SSH debug output to help diagnose the issue.
ããã§ã¯ãIPãªã©ã®æ©å¯æ å ±ã®äžéšãå€æŽããŸããã
ãã¹ãçãããããã«ããããç§ã®ansibleèšå®ã«è¿œå ããŸããïŒ
[ssh_connection]
control_path = %(directory)s/%%h-%%p-%%r
ããããšã©ãŒåºåã«å«ãããã倱æãã代ããã«ãã£ãšåªé ãªããšãããã®ã圹ç«ã€ãããããŸããã
ç§ã«ãšã£ãŠãåããšã©ãŒã§ãïŒ ãã®ä¿®æ£ã§LukeHoerstenã«åæããŸãã
ããªãã®è§£æ±ºçã@LukeHoerstenã«ææããŠãããŠããããšã
åé¡ãªãã ããŸãããã°ãããã§ãã確å®ãªä¿®æ£ãåŸãããšãã§ããŸãã ç¹ã«åå¿è ã«ãšã£ãŠã¯æªãããšã§ãã
ansibleèšå®ã«ã¯å¥ã®ã³ã¡ã³ãã¢ãŠããããææ¡ããããŸãcontrol_path = %(directory)s/%%h-%%r
ããããã¯ãããã«ãã¡ãã»ãŒãžã¯åœ¹ã«ç«ã¡ãŸãã
ç§ããããæã£ãã ç§ã¯æ°ãããèšå€§ãªæéãç¡é§ã«ããŠããŸãã çããŠãããŠããããšãïŒ ãããŠãç§ã¯åæããŸããä¿®æ£ããå¿ èŠããããŸãã
ç§ãïŒ+1ïŒãã®æ©èœã®ããã«ã
ä»æ¥ããã«çŽé¢ããã ansible.cfg
ã®ãã³ããããããšã!!
control_pathã®ç·šéã¯ãMac OSX ElCapitanã§ã¯æ©èœããŸããã
ããã¯ElCapitanã§ç§ã®ããã«åããŸãïŒ
[ssh_connection]
control_path =ïŒ
ïŒãã£ã¬ã¯ããªïŒs / %% h-%% r
@willotterãææããããã«ãããã¯https://raw.githubusercontent.com/ansible/ansible/devel/examples/ansible.cfgã®ã³ã¡ã³ãã¢ãŠããããã¹ããŒãã¡ã³ãã®1ã€ã§ã
ãªããããåé¡ã«ãªãã®ãç¥ããã-é·ããã¹åã¯ãã€Windowsã®å€ã§åé¡ã«ãªãã®ãïŒ
ããã¯ãEICapitanã«ã¢ããã°ã¬ãŒãããåŸã®ç§ã«ãšã£ãŠã¯ããŸããããŸãã
[ssh_connection]
control_path = %(directory)s/%%h-%%p-%%r
@deyvshãªããããåé¡ã«ãªãã®ã-é·ããã¹åã¯ãã€Windowsã®å€ã§åé¡ã«ãªãã®ã§ããããïŒ
ãšã«ãã£ãã¿ã³ãã¢ããã«ãããªãªãŒã¹ãããŠä»¥æ¥ã äžåœèªã®ããŒãžãé€ããŠãããã¯MacOSã§ã®ãã®æ°ããåäœãåç §ããŠããããã«èŠããå¯äžã®ããŒãžã§ãã sshçµç±ã§ãªã¢ãŒããã¡ã€ã«ãžã®ééçãªã¢ã¯ã»ã¹ãå¯èœã«ããemacsã§Trampã¢ãŒãã䜿çšããããšãããšãã«åãåé¡ãçºçããŸããã UNIXãã¡ã€ã³ãœã±ããã®é·ããã¡ã€ã«åã«ã€ããŠãåããšã©ãŒãçºçããŸãããAnsibleã»ã©ç°¡åã«ã¯åé¿ã§ããŸããã
@cswarthansibleèšå®ãsshã¯ã©ã€ã¢ã³ãã«æž¡ãããã ãã§ãã 次ã®ããã«ãsshæ§æãã¡ã€ã«~/.ssh/config
control_pathãèšå®ã§ããå ŽåããããŸãã
Host *
ControlPath /tmp/%r@%h:%p
ç§ã¯MacOS Xãæã£ãŠããªãã®ã§ãããããã¹ãããããšã¯ã§ããŸããããemacsãç¹å®ã®ãã©ã¡ãŒã¿ãŒãSSHã«æž¡ããªãéããããã¯æ©èœããã¯ãã§ãã
@willotterãã®ã¢ã€ãã¢ãé©å¿ãããansible.cfgãã¡ã€ã«ã«è¿œå ããŠæ©èœãããå¿ èŠããããŸããã
[ssh_connection]
control_path = /tmp/%%h-%%p-%%r
2017幎ã®æŽæ°ïŒ @willotterã¯ããååšããªããã
@LukeHoerstenãããããããšããç§ã®ããã«åé¡ãä¿®æ£ããŸããïŒ
ããã®æ ¹æ¬çãªåå ã¯
int
unix_listener(const char *path, int backlog, int unlink_first)
{
struct sockaddr_un sunaddr;
int saved_errno, sock;
memset(&sunaddr, 0, sizeof(sunaddr));
sunaddr.sun_family = AF_UNIX;
if (strlcpy(sunaddr.sun_path, path, sizeof(sunaddr.sun_path)) >= sizeof(sunaddr.sun_path)) {
error("%s: \"%s\" too long for Unix domain socket", __func__,
path);
errno = ENAMETOOLONG;
return -1;
}
å¶éïŒsizeofïŒsunaddr.sun_pathïŒïŒãç¥ãã«ã¯ã httpsïŒ //developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man4/unix.4.htmlã確èªããå¿ èŠããããŸã
struct sockaddr_un {
u_char sun_len;
u_char sun_family;
char sun_path[104];
};
ãã¹ã¯ã0ã¿ãŒãããŒã¿ãå«ããŠ104æåã«å¶éãããŠããŸãã
ããã¯https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Multiplexing#Manually_Establishing_Multiplexed_Connectionsã§ãè°è«ãããŠãããããã䜿çšããŠããããšã瀺åããŠããŸã
6.7以éãïŒ r @ïŒ hïŒïŒ pãšãã®ããªãšãŒã·ã§ã³ã®çµã¿åããã¯ãïŒ lïŒ hïŒ pïŒ rã®é£çµããããã·ã¥ãçæããïŒ Cã«çœ®ãæããããšãã§ããŸãã
çµå±ãããªãã¯äœ¿ããã
[ssh_connection]
control_path = %(directory)s/%%C
ãŸããã»ãã¥ãªãã£ã®ããã«ã/ tmpããã®ä»ã®äžçã§æžã蟌ã¿å¯èœã§äžççã«èªã¿åãå¯èœãªå Žæã«ã¢ã¯ã»ã¹ããªãããã«ããå¿ èŠããããŸãã
http://pastebin.com/ugXKMFsvãåç §ããŠãã ãã
@isotoppè¯ãææ¡ã å°æ¥ã®åé¡ãåé¿ããããã«ãããã©ã«ããcontrol_path = %(directory)s/%%C
ã«å€æŽããªãã®ã¯ãªãã ãããã
@LukeHoerstenansibleãããã©ã«ããå€æŽããå¿ èŠããããšæããŸãã å®ã¯ç§ãããŸãã
[:~] $ grep -i control ~/.ssh/config
ControlMaster auto
ControlPath ~/.ssh/_%C
@bcocaã«pingã
+1
å°ãå€ãããŒãžã§ã³ã®opensshãå®è¡ããå€ãã®OS /ãã£ã¹ããªãã¥ãŒã·ã§ã³ã§ã¯æ©èœããªãããã§ãã
http://pastebin.com/ugXKMFsvã§ææ¡ãããå€æŽã¯ãããã¥ã¡ã³ããšã³ã¡ã³ãã®ã¿ãå€æŽããŸãã å€ãããŒãžã§ã³ã®opensshã§åäœããŸãããïŒ Cãžã®ãã€ã³ã¿ãŒãããæ確ã«ããŸãã
ãã·ã³ã«é·ããŠãŒã¶ãŒåïŒ11æåïŒããããŸããããã«ããããã£ã¬ã¯ããªãæåæ°ã®å¶éãè¶ ããŸããã
https://github.com/ansible/ansible/blob/devel/examples/ansible.cfg#L216 -L225
-%%r
ãåé€ãããšããããã®åé¡ã¯è§£æ±ºããŸããã
ïŒ+1ïŒ httpsïŒ //github.com/ansible/ansible/issues/11536#issuecomment-156210086ãž
ã€ã³ãã³ããªãã¡ã€ã«ã®ä»£ããã«group_varsãã¡ã€ã«ãæäŸããæå·åããããã¡ã€ã«ããªããšãããŠåãã§è§£æãããã¹ãåãšããŠ182937891273891723981723891723987189237189237981273981ã®ãããªãã®ãåãå ¥ãããããä»æ¥ãã®ãšã©ãŒãçºçããŸããã SSHã¯ãŸããé·ãControlPathã«æ°ä»ãåã«ãããããããããšã¯æã£ãŠããŸããã§ããã åŸäžãžã®èŠå-ãã¹ãŠã-vvvvã§å®è¡ããé©åãªãã¹ããªã©ãæããŠããããšã確èªããŠãã ããã
ããããããšãã OS X ElCapitanã§çºçãããšã©ãŒãä¿®æ£ãããŸããã
+1
ããã§ãOS X ElCapitanã®åé¡ã解決ããŸããã
OS X ELCapitanã§ãåããŠãããŸããã 泚æç¹ãšããŠãbrewãä»ããŠansibleãã€ã³ã¹ããŒã«ããå Žåããã¡ã€ã«ã¯/usr/local/etc/ansible/ansible.cfg
ïŒ+1ããã¯ãã ããããšããŠããç§ã«èµ·ãã£ansible all -i inventory -m ping
ã®ãããªé·ããã¹ãåãšãã¹ãæã€ec2-XX-XXX-XX-XX.eu-west-1.compute.amazonaws.com
ããã¯ãšã«ãã£ãã¿ã³ã§ç§ã®ããã«åããïŒ
çŸåšã®ãã£ã¬ã¯ããªã«ansible.cfg
ãã¡ã€ã«ã次ã®ããã«äœæããŸããã
[ssh_connection]
control_path = %(directory)s/%%C
ansible ..
å®è¡ããŠããsshãšã©ãŒã¯çºçããŸãã
OS X ELCapitanã§ãåããŠãããŸããã brewã§ansibleãã€ã³ã¹ããŒã«ããå Žåããã¡ã€ã«ã¯/usr/local/etc/ansible/ansible.cfgã«ãªããŸãã
ç§ã¯ElCapitanã§ãbrewãä»ããŠansibleãã€ã³ã¹ããŒã«ããŸãããããããã®èšå®ã§è¿œå ããããšãã/usr/local/etc/ansible/ansible.cfg
ãã¡ã€ã«ãç¡èŠããŸããã
@tleydenããã¯ããªãå¥åŠã§ãã /usr/local/etc/ansible/ansible.cfg
ã¯ç§ã«ãšã£ãŠã¯ããŸããããŸãã
ãããç§ã¯éãã«æ°ã¥ããŸãã-ç§ã¯éžé ã§ã¯ãªãpip install ansible
ä»ããŠansibleãã€ã³ã¹ããŒã«ããŸãã
æåŸã«CErvOvRE5U0urCgm
ãããªæååãè¿œå ããã®ã¯ãªãæ°çŽããªã®ã§ããïŒ ãã®åœ¹ã«ç«ããªãæååã®ããã«ç©äºã¯ç§ã«ãšã£ãŠå£ããŸãã
ããã«ã³ã¡ã³ããè¿œå ããŠãå®è¡ã§ããã¢ã¯ã·ã§ã³ãæ確ã«ããŸãã
ç§ãè¿œå ããŸããïŒ
%(directory)s/%%hâ%%r
ããããç§ã®éã¯ãŸã é·ãããŸããïŒ ã©ãããã°ãããä¿®æ£ã§ããŸããïŒ
SSH Error: unix_listener: "/Users/myfullname/.ansible/cp/ec2-xx-xx-xx-xx.eu-central-1.compute.amazonaws.com-centos.AAZFTHkT5xXXXXXX" too long for Unix domain socket
while connecting to 52.xx.xx.xx:22
Ubuntu16.04ã®ansible2.1.0.0ã§ãã®åé¡ãçºçããŠããŸã
$ ssh -V
OpenSSH_7.2p2 Ubuntu-4ubuntu1, OpenSSL 1.0.2g-fips 1 Mar 2016
ãããç§ã®ansible.cfgã«è¿œå ãããšããŸããããŸããïŒ
[ssh_connection]
control_path=%(directory)s/%%h-%%p-%%r
ãŸãã¯ãé·ãAWSãã¡ã€ã³åãIPã¢ãã¬ã¹ã«å€æŽãããšãansible.cfgã®ssh_connection.control_pathãå€æŽããªããŠããä¿®æ£ãããŸããã
ä»ã®äººãèšã£ãŠããããã«ããã®ãšã©ãŒã¯-vvvvã§å®è¡ããå Žåã«ã¯æããã§ã¯ãããŸããã§ããã ãUnixãã¡ã€ã³ãœã±ããã«ã¯é·ãããŸãããšãããšã©ãŒã確èªããã«ã¯ããããã°åºåã®ã³ãã³ããã³ããŒããŠã¿ãŒããã«ã§çŽæ¥å®è¡ããå¿ èŠããããŸããã
ç§ãåãåé¡ãæ±ããŠããŸãã
ãã®åé¡ã¯éåžžã«åä»ã§ãAnsibleãã¬ã€ããã¯ãå®è¡ããŠãããã·ã³ã«å¿ããŠIPãšFQDNãåãæ¿ããå¿ èŠããããŸã... AnsibleåŽããèšç»ãããŠããå®éã®è§£æ±ºçã¯ãããŸããïŒ
@swoodford ãããããLinuxãã£ã¹ããªãã¥ãŒã·ã§ã³ã«åé¡ã
ç§ã¯ãŸã ansibleãdafaultãå€ããã¹ãã ãšæããŸãã
éåžžã«é¢çœãã ãã°ããåã«cdistã§åãåé¡ãçºçããŸããïŒãããŠããã«é¢é£ããå¥ã®ãã°ã調ã¹ãŠããŸãïŒã Unixã®sun_pathå¶éã¯ã2016幎ã«ç§ãã¡å šå¡ãæ©ãŸããŠããæ¬åœã«æ¬åœã«å€ãå¶éã§ãã
æãç°¡åãªè§£æ±ºçïŒãªãã
2çªç®ã«è¯ã解決çïŒãœã±ããåãçãããŠãã ããã ããŒã ãã£ã¬ã¯ããªãé·ããã¹ã®å Žåã§ãå£ããŸã
3çªç®ã«è¯ã解決çïŒ/ tmp / short-random-path / cã®ã©ããã«ä¿åããŸãïŒ1æåã ãå¿
èŠã§ãïŒ
é·æçãªè§£æ±ºçïŒsun_pathã®å¶éãåãé€ããã2016幎ã®é©åãªããã©ã«ãã«åŒãäžããŸãïŒãªãŒã¹ãã£ã³ã°ã«ãŒã/ posixã®èª°ãããããèªãã§ããŸããïŒïŒ
%(directory)
ã¯äœã®ç¥ã§ããïŒ
@isotopp
ããã¯ã ~/.ssh/config
ãã¡ã€ã«å
ã«é
眮ããããã®æ£ããæ§æïŒã¢ã³ããŒã¹ã³ã¢ãã¬ãã£ãã¯ã¹ä»ãïŒã§ããïŒ
ControlMaster auto
ControlPath ~/.ssh/_%C
ããã¯ãansible.cfgãã¡ã€ã«ã®double %%
ãšåãæå³ãæã€ãšã¹ã±ãŒãã§ããïŒ ansibleã®å€éšã§ãsshã䜿çšããã®ãšåãæ¹æ³ã§ãäž¡æ¹ãæ§æããããšããŠããŸãã
ãããžã§ã¯ãã®ansible.cfgã«control_path
ãè¿œå ããåŸã§ãããã®ãšã©ãŒãçºçããŠããŸããããããŒãžã§ã³2.1.3ã«æ»ãã2.2.1ã®å®è¡æã«ãšã©ãŒãã¹ããŒããã®ãšåãã³ãã³ããå®è¡ããŸãããåé¡ã¯è§£æ±ºãããŸããã
ããŒãžã§ã³ã§ãŸã ãã®åé¡ããããŸãïŒansible 2.2.0.0
æ¬åœã«å¥åŠãªåé¡ã fedora24ã®ansible2.2.0.0->åé¡ãååšããŸãã
OSXã®2016/07/05ããã®githead->åé¡ã¯ååšããŸããã
@bcocaç§ã¯åžžã«äžäœäºææ§ã®ãã¡ã³ã§ãïŒãããç§ã¯ãã®centos 6.5ä¿®æ£ãéä¿¡ããŸããïŒã 䜿çšããcontrolpathãopenssh / distroããŒãžã§ã³ã§åçã«ããã®ã¯ã©ãã§ããïŒ
ãã§ã«åçã§ããããã©ã«ãã§ãããã¹ããŒããæ¥ç¶ã®èåŸã«ããããžãã¯ãåç §ããŠãã ãã
ãã¹ããããã¹ãã«æ¥ç¶ãããšããããã¯ããã¯ã«sshããŒããªãå¯èœæ§ããããŸããïŒ :)
ã¡ãªã¿ã«ãEL7ã«ã¯openssh 6.6ããããïŒ Cã¯openssh 6.7ãŸã§è¿œå ããããããã¯ããŒããããŠããªããããçŸæç¹ã§ã¯ïŒ Cã¯é©åãªããã©ã«ãã§ã¯ãããŸããã
EL7ã§ã¯å®å šã«æ¡åŒµããã圢åŒã®ïŒ lïŒ hïŒ pïŒ rã䜿çšã§ããŸããããã¡ããããã·ã¥ãå®è¡ããªããããéšåçã«ãã軜æžãããŸããã
åºè·ãããããã±ãŒãžã«åãããã«ããã©ã«ãã®èšå®ãå€æŽããã®ã¯ããã£ã¹ããªãã¥ãŒã·ã§ã³ã®ææè ã§ããå¿ èŠããããŸãã ãã®ãããªéèŠãªæ¹åãé²ããåã«ãäžæµã¯7å¹ŽåŸ ã€ã¹ãã§ã¯ãªããšæããŸãã
ç§ã¯ãŸã AnsibleããŒãžã§ã³2.2ãšAnsibleTower 3.1.1ã䜿çšããŠããã®ã§ããã®åé¡ã«ãééããŸããã @dennisobrienã以åã«
---
ssh_connection:
control_path: "%(directory)s/%%h-%%p-%%r"
@ b-longãcontrol_pathã䜿çš%(directory)s/%%C
ç§ã®ãµãŒããŒã«ã¯ãã®åé¡ãããããããå€æŽããæš©éããããŸããã ã¯ã©ã€ã¢ã³ãåŽã§ã©ãããã°è§£æ±ºã§ããŸããïŒ
@thefourtheyeããã¯çŽç²ã«ã¯ã©ã€ã¢ã³ãã®åé¡ã§ããããµãŒããŒã®åé¡ã§ã¯ãããŸããã ãã®ã¹ã¬ããã®ååã§ãansible.cfgãã¡ã€ã«ã«èšå®ãããªãã·ã§ã³ãèŠã€ããããšãã§ããŸãã
@antoinecoãããããããšãã ç§ã¯ansibleãåããŠäœ¿çšãããã·ã³ã«ã€ã³ã¹ããŒã«ããŠããŸããã ããã§ãããŒã ãã£ã¬ã¯ããªã«ãã¡ã€ã«ansible.cfg
ããããšæ©èœããŸããïŒ
ç§ã¯åãåé¡ãæ±ããŠããŸããç§ã¯ãã¹ãŠã®è§£æ±ºçãã/ã«è¿œå æ§æãã¡ã€ã«.ansible.cfgãå«ããŠã¿ãŸãïŒ
[defaults]
inventory=/etc/ansible/hosts
[ssh_connection]
control_path=%(directory)s/%%h-%%r
control_path_dir=~/.ansible/cp
ãããŠãknowhostãšipãsshknown_hostsã«è¿œå ããŸãã ããããããã¯ãŸã æ©èœããŠããŸãããããã¯EC2ã®ubuntuã§ãã
ããã¯ãšã©ãŒã§ãïŒ
fatal: [default]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Warning: Permanently added 'ec2-xx-192-174-42.ap-northeast-1.compute.amazonaws.com,xx.192.174.42' (ECDSA) to the list of known hosts.\r\nunix_listener: \"/Users/name/.ansible/cp/ec2-xx-192-174-42.ap-northeast-1.compute.amazonaws.com-ubuntu.1fndG2vtHPliheeZ\" too long for Unix domain socket\r\n", "unreachable": true
control_path = %(directory)s/%%C
ããææ¡ããããœãªã¥ãŒã·ã§ã³ã䜿çšããŠããŸããã
@akostadinovããããšããããã¯åäœããŸãã ããã§ã¯è§£æ±ºçãå€ãããŸãã
ããã§ã¯è§£æ±ºçãå€ãããŸãã
ããããã£ãšé£ããã£ãã®ãªã...ãããã®ãœãªã¥ãŒã·ã§ã³ãããã€ããŒãåªãïŒ
ããã§ææ¡ãããŠãããã¹ãŠã®è¡ããã±ãŒã·ã§ã³ãã·ã³ã®~/ansible.cfg
ãã¡ã€ã«ã«è¿œå ããããšããŸãããã
ä»ç§ã®ããã«åããŠããã®ã¯ã nslookup
ãã·ã³ã®IPã¢ãã¬ã¹ãååŸããããã䜿ã£ãŠãã°ã€ã³ããããšã§ãã
@thefourtheye ãããã«è¡šç€ºããããææ¡ãããè¡ãã®æ°ãããããŸããã 50以äžã®ãããã®æçš¿ã䜿çšããŠãã ããã ãã ããé©åãªãªãã·ã§ã³ã«å ããŠã ~/.ansible.cfg
ã 詳现ã«æ³šæãæãããã«ããŠãã ããããŠãŒã¶ãŒèšå®ãã¡ã€ã«ã®åã®ãããã¯ãäžè¬çãªUNIXã®èŠåã§ãã
@akostadinovç³ãèš³ãããŸããããããã¯ã¿ã€ããã¹ã§ããã ããã¯ãããã©ã®ããã«èŠãããã§ã
â ~ cat ~/.ansible.cfg
[ssh_connection]
control_path = %(directory)s/%%h-%%p-%%r
.ansible.cfg
ãã£ã€ã ã鳎ããããã ãã§ãïŒ
[ssh_connection]
control_path = /tmp/control_%%l_%%h_%%p_%%r
ç§ã«ãšã£ãŠã directory
ã¯ãšãŠã€ããªãé·ããã®.ssh/config
ãããããã®ã§ãåãæ¥ç¶ãåå©çšã§ããŸãã
ControlMaster auto
ControlPath /tmp/control_%l_%h_%p_%r
ç³ãèš³ãããŸããããããŒãã³ãŒããããtmpã¯ç§»æ€å¯èœã§ããã ãã§ãªããæ·±å»ãªã»ãã¥ãªãã£ãªã¹ã¯ã䌎ããŸãã æ£åœãªçç±ã«ãããMacOSã¯ãŠãŒã¶ãŒã/ tmpã«æžã蟌ãããšãèš±å¯ããããŠãŒã¶ãŒããšã«åé¢ãããïŒãã©ã€ããŒãïŒtmpãã©ã«ããŒãæäŸããŸãã
Tmpã¯ãansibleã«ããããé©çšããåŸãOSãæäŸããtmpãã¹ïŒïŒ ïŒtmpïŒs ...ãªã©ïŒã䜿çšããå Žåã«ã®ã¿æ©èœããŸãã
ã¿ããªãæ¢åã®ã³ã¡ã³ããèªãã§ãã ããã誰ããåãããšãå°ãã«æ¥ãŠã誰ããåã解決çãè¿œå ããã®ã¯ã°ãããŠããŸãã é©åãªæ§æãã¡ã€ã«ã䜿çšãã httpsïŒ //github.com/ansible/ansible/issues/11536#issuecomment-153030743ãåç §ããŠ
誰ãããã以äžã®ã¹ãã ãé¿ããããã«ã¹ã¬ãããéããŠãã ããã
@ssbarneaã¯ã移æ€æ§ã®ãªããã®ãããŒã³ãŒãããŸãã...ãããansibleã®ããã©ã«ãã§ã¯ãªãçç±ã§ã... / tmpã¯ã¹ãã£ãããŒã§ãããopensshã¯ãããã®ãã¡ã€ã«ã«é©åãªã¢ãŒãïŒ0600ïŒã䜿çšãããããã»ãã¥ãªãã£ã®åé¡ãŸãã¯macOSã®åé¡ã«ã€ããŠåæãããã©ããã¯ããããŸããã
æè¿ã®opensshãå¿
èŠãšãã%C
ã䜿çšãããœãªã¥ãŒã·ã§ã³ã«é¢ããŠ...
ç§ã¯å€ä»£ã®sshããŒãžã§ã³ãç¹ã«ansibleã³ã³ãããŒã©ãŒã«ã€ããŠã¯ããŸãæ°ã«ããŸããã é²åããããã«ãç§ãã¡ã¯ããã€ãã®ããšãåŸåãã«ããå¿ èŠããããŸãããããŠãã®å Žåã圱é¿ãåãã人ã ãããã䜿ãç¶ããããšãã§ããããã«èšå®ãå€æŽããå¯èœæ§ãããã®ã§ããã®å Žåã¯ããã»ã©å€§ããããšã§ã¯ãããŸããã
AnsibleãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ïŒUXïŒã«ã¯ãã»ãšãã©ã®ãŠãŒã¶ãŒã«é©ããããã©ã«ããæäŸããå€æŽã®å¿
èŠæ§ãæå°éã«æããããšãäžå¯æ¬ ã ãšæããŸãã %C
ãµããŒãããŠããªãããŒãžã§ã³ã®openopensshã䜿çšããŠãããŠãŒã¶ãŒã1ã2ïŒ
以äžãããšã¯æããŸããã
%(tmpdir)s
m $(configdir)s
ã %(inventorydir)s
ãéé±ã§ãã°ãçºçãããããAnsibleã«ããã€ãã®éèŠãªINIå€æ°ãã§ããã ãæ©ãå®è£
ããå¿
èŠããããšæããŸãã
ãããã®äººã ãããã°ãä¿¡é Œã§ããçžå¯Ÿãã¹ãäœæããããšãã§ããŸãã
æ²ããããšã«ãç§ã®å ŽåãCIã®äžéšãšããŠAnsibleã䜿çšããŠãããåããã·ã³äžã«è€æ°ã®JenkinsããŒãããããåããŠãŒã¶ãŒã®äžã§å®è¡ãããŠãããããåé¡ã¯ããã«æªåããŸããsshã»ãã·ã§ã³ã®ãã€ãžã£ãã¯ãé »ç¹ã«çºçããŸããã ãšã«ããç§ã®åé¡ã¯ãã£ãšè€éã§ããã®ãã±ããã®ç¯å²å€ã§ãã
ç§ã¯6ãæåã«sshã®ãã¹ãŠã®ããŒãžã§ã³ã§äžè¬çãªæ¹æ³ã§ãã®åé¡ãä¿®æ£ããŸããã Ansible 2.3以éã§åé¡ãçºçããŠããå Žåã¯ãansible.cfgã«ç©ºçœã®ãŸãŸã«ããã®ã§ã¯ãªããã«ã¹ã¿ã å¶åŸ¡ãã¹ãèšå®ããŠããããšãåå ã§ãã
https://github.com/ansible/ansible/commit/ac78347f2bc4a489c7e254c6c1d950fb45f240ad
https://github.com/ansible/ansible/blob/devel/examples/ansible.cfg#L360 -L367
# The path to use for the ControlPath sockets. This defaults to a hashed string of the hostname,
# port and username (empty string in the config). The hash mitigates a common problem users
# found with long hostames and the conventional %(directory)s/ansible-ssh-%%h-%%p-%%r format.
# In those cases, a "too long for Unix domain socket" ssh error would occur.
#
# Example:
# control_path = %(directory)s/%%h-%%r
#control_path =
äžèšã®ããããåç §ããã«ãã®äŒè©±ãç¶ãã®ã§ãããã¯ããŸãã ãã®ãããã¯ã«ã€ããŠããã«è³ªåãããå Žåã¯ãã¡ãŒãªã³ã°ãªã¹ãã䜿çšããŠãã ããã
æãåèã«ãªãã³ã¡ã³ã
ãã¹ãçãããããã«ããããç§ã®ansibleèšå®ã«è¿œå ããŸããïŒ
ããããšã©ãŒåºåã«å«ãããã倱æãã代ããã«ãã£ãšåªé ãªããšãããã®ã圹ç«ã€ãããããŸããã