Ansible: рдЬрдм рдПрд╕рдПрд╕рдПрдЪ 'рдпреВрдирд┐рдХреНрд╕ рдбреЛрдореЗрди рд╕реЙрдХреЗрдЯ "рдмрд╣реБрдд рд▓рдВрдмрд╛" рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИ рддреЛ рдирд┐рдпрдВрддреНрд░рдгрдкрде рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рдЬреБрд▓ре░ 2015  ┬╖  66рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: ansible/ansible

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкреНрд░рдХрд╛рд░

рдлрд╝реАрдЪрд░ рдЖрдЗрдбрд┐рдпрд╛

рдШрдЯрдХ рдХрд╛ рдирд╛рдо

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.

рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдХреБрдЫ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдЬреИрд╕реЗ рдЖрдИрдкреА рдЖрджрд┐ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИред

affects_2.0 affects_2.3 feature

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдкрде рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдореЗрд░реЗ ansible config рдореЗрдВ рдЬреЛрдбрд╝рд╛:

[ssh_connection]
control_path = %(directory)s/%%h-%%p-%%r

рддреНрд░реБрдЯрд┐ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдЕрд╕рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХреБрдЫ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╕рднреА 66 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдкрде рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдореЗрд░реЗ ansible config рдореЗрдВ рдЬреЛрдбрд╝рд╛:

[ssh_connection]
control_path = %(directory)s/%%h-%%p-%%r

рддреНрд░реБрдЯрд┐ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдЕрд╕рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХреБрдЫ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐! рдореИрдВ рдЗрд╕ рдлрд┐рдХреНрд╕ рдореЗрдВ рд▓реНрдпреВрдХрд╣реЛрд░реНрд╕реНрдЯрди рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред

рдЕрдкрдиреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @LukeHoersten

рдХреЛрдИ рджрд┐рдХреНрдХрдд рдирд╣реАрдВ рд╣реИред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдо рд╡рд╣рд╛рдВ рдФрд░ рдЕрдзрд┐рдХ рдареЛрд╕ рд╕реБрдзрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдирдП рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмреБрд░рд╛ рд╣реИред

Ansible config рдореЗрдВ рдПрдХ рдФрд░ рдХрдореЗрдВрдЯ рдЖрдЙрдЯ рд╕реБрдЭрд╛рд╡ рд╣реИ
control_path = %(directory)s/%%h-%%r

рд▓реЗрдХрд┐рди рд╣рд╛рдБ рдПрдХ рд╕рд╣рд╛рдпрддрд╛ рд╕рдВрджреЗрд╢ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдореИрдВрдиреЗ рдЕрднреА рдЗрд╕реЗ рднреА рдорд╛рд░рд╛ рд╣реИред рдореИрдВ рдирдпрд╛ рд╣реВрдВ рдФрд░ рдмрд╣реБрдд рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдФрд░ рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдореИрдВ рднреА :+1: рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдПред

рдЖрдЬ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред ansible.cfg рдкрд░ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж !!

рд╕рдВрдкрд╛рджрди control_path Mac OSX El Capitan рдкрд░ рдХрд╛рд░реНрдп рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдПрд▓ рдХреИрдкрд┐рдЯрди рдореЗрдВ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

[ssh_connection]
control_path =%(рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛)s/%%h-%%r

рдЬреИрд╕рд╛ рдХрд┐ @willotter рдиреЗ рдмрддрд╛рдпрд╛, рдпрд╣ https://raw.githubusercontent.com/ansible/ansible/devel/examples/ansible.cfg рдореЗрдВ рдХрдореЗрдВрдЯ рдЖрдЙрдЯ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред

рдпрд╣ рдЬрд╛рдирдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдореБрджреНрджрд╛ рдХреНрдпреЛрдВ рд╣реИ - рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рдмрд╛рд╣рд░ рд▓рдВрдмреЗ рдкрдердирд╛рдо рдХрдм рд╕реЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ?

EI Capitan рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

[ssh_connection]
control_path = %(directory)s/%%h-%%p-%%r

@deyvsh рдпрд╣ рдПрдХ рдореБрджреНрджрд╛ рдХреНрдпреЛрдВ рд╣реИ - рдЬрдм рд╕реЗ рд▓рдВрдмреЗ рдкрдердирд╛рдо рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рдмрд╛рд╣рд░ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ?

рдЪреВрдВрдХрд┐ El Capitan рдХреЛ Apple рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЪреАрдиреА рдореЗрдВ рдПрдХ рдкреГрд╖реНрда рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдРрд╕рд╛ рдкреГрд╖реНрда рд╣реИ рдЬреЛ MacOS рдореЗрдВ рдЗрд╕ рдирдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИред рдореИрдВ рдЙрд╕реА рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ рдЬрдм emacs рдореЗрдВ рдЯреНрд░реИрдореНрдк рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬреЛ ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреВрд░рд╕реНрде рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рдкрд╛рд░рджрд░реНрд╢реА рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпреВрдирд┐рдХреНрд╕ рдбреЛрдореЗрди рд╕реЙрдХреЗрдЯ рдХреЗ рд▓рд┐рдП рд▓рдВрдмреЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд╣реА рддреНрд░реБрдЯрд┐, рд▓реЗрдХрд┐рди Ansible рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред

@cswarth ansible config рд╕рд┐рд░реНрдл рдЖрдкрдХреЗ ssh рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рдЕрдкрдиреА ssh рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ ~/.ssh/config рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдПрдХ control_path рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:

Host *
  ControlPath /tmp/%r@%h:%p

рдореЗрд░реЗ рдкрд╛рд╕ рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдирд╣реАрдВ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд▓реЗрдХрд┐рди рдпрд╣ рддрдм рддрдХ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдПрдордПрд╕реАрдПрд╕ рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ред

@willotter рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдерд╛ рдФрд░ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА ansible.cfg рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдерд╛ред

[ssh_connection]
control_path = /tmp/%%h-%%p-%%r

2017 рдЕрдкрдбреЗрдЯ: рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @willotter рдЕрдм рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ :(

@LukeHoersten рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛!

рдЗрд╕рдХрд╛ рдореВрд▓ рдХрд╛рд░рдг рд╣реИ

https://github.com/openssh/openssh-portable/blob/9ada37d36003a77902e90a3214981e417457cf13/misc.c#L1070

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;
    }

рд╕реАрдорд╛ (рдЖрдХрд╛рд░(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 рдХреЗ рд╕рдВрдпреЛрдЬрди рдФрд░ рдЙрд╕ рдкрд░ рд╡рд┐рд╡рд┐рдзрддрд╛рдУрдВ рдХреЛ %C рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╕реНрд╡рдпрдВ рд╣реА %l%h%p%r рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рдПрдХ рд╣реИрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред

рдЕрдВрдд рдореЗрдВ, рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ

[ssh_connection]
control_path = %(directory)s/%%C

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдХрд╛рд░рдг /tmp рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рд╢реНрд╡-рд▓реЗрдЦрди рдпреЛрдЧреНрдп, рд╡рд┐рд╢реНрд╡-рдкрдардиреАрдп рд╕реНрдерд╛рди рд╕реЗ рдмрдХрд╡рд╛рд╕ рд╕реЗ рдмрд╛рд╣рд░ рд░рд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдпрд╣ рднреА рджреЗрдЦреЗрдВ http://pastebin.com/ugXKMFsv

@isotopp рдЕрдЪреНрдЫреЗ рд╕реБрдЭрд╛рд╡ред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рд╣рдо рднрд╡рд┐рд╖реНрдп рдХреЗ рдореБрджреНрджреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ control_path = %(directory)s/%%C рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрджрд▓рддреЗред

@LukeHoersten рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ansible рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рднреА рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВрдиреЗ рдХрд┐рдпрд╛

[:~] $ grep -i control ~/.ssh/config
ControlMaster auto
ControlPath ~/.ssh/_%C

рдкрд┐рдВрдЧ @bcoca - рдКрдкрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рджреЗрдЦреЗрдВред

+1

рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдИ рдУрдПрд╕/рдбрд┐рд╕реНрдЯреНрд░реЛ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬреЛ рдУрдкрдирд╢ рдХреЗ рдереЛрдбрд╝реЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рднреА рдЪрд▓рд╛рддреЗ рд╣реИрдВ

http://pastebin.com/ugXKMFsv рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХреЗрд╡рд▓ рдбреЙрдХреНрд╕ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИред рдУрдкрдирд╢ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдкреЙрдЗрдВрдЯрд░ рдХреЛ %C рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдмрдирд╛ рджреЗрдЧрд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реА рдорд╢реАрди (11 рд╡рд░реНрдг) рдкрд░ рдПрдХ рд▓рдВрдмрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╣реИ, рдЗрд╕рд╕реЗ рдореЗрд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡рд░реНрдг рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЧрдИ рд╣реИред

https://github.com/ansible/ansible/blob/devel/examples/ansible.cfg#L216 -L225

рдореИрдВрдиреЗ -%%r рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ рдФрд░ рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ред

рдореИрдВрдиреЗ рдЖрдЬ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдорд╛рд░рд╛ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реА рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрдЬрд╛рдп, рдореИрдВрдиреЗ рдЕрдкрдиреА group_vars рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреА рдФрд░ ansible рдиреЗ рдХрд┐рд╕реА рддрд░рд╣ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреБрд╢реА рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдФрд░ рд╣реЛрд╕реНрдЯрдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ 182937891273891723981723891723987189237189237981273981 рдЬреИрд╕реЗ рдХреБрдЫ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ред SSH рдиреЗ рдпрд╣ рднреА рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рд▓рдВрдмреЗ ControlPath рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдЕрдЬреАрдм рдерд╛ред рднрд╛рд╡реА рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрддрд╛рд╡рдиреА - -vvvv рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдЪрд▓рд╛рдПрдБ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд╕рд╣реА рдореЗрдЬрдмрд╛рди рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╡рд╣ рд╕рдмред

рдЗрд╕рдХреЗ рд▓рд┐рдП рд╢реБрдХреНрд░рд┐рдпрд╛ред рдЗрд╕рдиреЗ OS X El Capitan рдкрд░ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдХреА рдЧрдИ рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ред

+1
рдЗрд╕рдиреЗ OS X El Capitan рдкрд░ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рджрд┐рдпрд╛ред

рдореЗрд░реЗ рд▓рд┐рдП OS X EL Capitan рдкрд░ рднреА рдХрд╛рдо рдХрд┐рдпрд╛ред рдмрд╕ рдПрдХ рдиреЛрдЯ, рдпрджрд┐ рдЖрдкрдиреЗ рдХрд╛рдврд╝рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 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 EL Capitan рдкрд░ рднреА рдХрд╛рдо рдХрд┐рдпрд╛ред рдмрд╕ рдПрдХ рдиреЛрдЯ, рдпрджрд┐ рдЖрдкрдиреЗ рдХрд╛рдврд╝рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ ansible рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдлрд╝рд╛рдЗрд▓ /usr/local/etc/ansible/ansible.cfg рд╣реИ

рдореИрдВ рдПрд▓ рдХреИрдкрд┐рдЯрди рд╣реВрдВ рдФрд░ рдмреНрд░реВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрддреНрддрд░рджрд╛рдпреА рд╕реНрдерд╛рдкрд┐рдд рд╣реВрдВ, рдФрд░ рдЗрд╕рдиреЗ /usr/local/etc/ansible/ansible.cfg рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЙрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдерд╛ред

@tleyden рдпрд╣ рдХрд╛рдлреА рдЕрдЬреАрдм рд╣реИ, /usr/local/etc/ansible/ansible.cfg рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдУрд╣, рдореБрдЭреЗ рдмрд╕ рдЕрдВрддрд░ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ - рдореИрдВрдиреЗ pip install ansible рдорд╛рдзреНрдпрдо рд╕реЗ ansible рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛, рдмреНрд░реВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ

рдпрд╣ рдЕрдВрдд рдореЗрдВ CErvOvRE5U0urCgm рддрд░рд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдЕрдЬреАрдм рдХрд╛рд░рдг рдХреНрдпреЛрдВ рд╣реИ? рдЙрд╕ рдмреЗрдХрд╛рд░ рддрд╛рд░ рдХреА рд╡рдЬрд╣ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдЪреАрдЬреЗрдВ рдЯреВрдЯ рдЬрд╛рддреА рд╣реИрдВред

рдХреНрдпрд╛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдпрд╣рд╛рдВ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЬреЛрдбрд╝рдирд╛:

  • рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдгред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реБрдЭрд╛рдП рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЕрдкрдбреЗрдЯ рдЗрд╕ рдЯрд┐рдХрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рд╛рд░ рдореЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреАрдЖрд░ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХрднреА рдорд░реНрдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
  • рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдкрдХрдбрд╝рдирд╛ - рдпрджрд┐ %C рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ ssh рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд▓реЛрдЧреЛрдВ рдХреЛ %l-%h-%p рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВред рдпрджрд┐ рдкрде рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реИ, рддреЛ рд▓реЛрдЧреЛрдВ рд╕реЗ рдХрд╣реЗрдВ рдХрд┐ рд╡реЗ %C рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдпрд╛ рдкрде рдХреЛ рдЫреЛрдЯрд╛ рдХрд░реЗрдВред
  • рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдЬрд┐рд╕ ssh рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ %C рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЕрдиреНрдпрдерд╛ рдирд╣реАрдВ (рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛ, рди рдХрд┐ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреА рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ?) (рд╣реИ рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ рдХрд┐ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рди рд▓рдЧреЗ, рд╣рд╛рд▓рд╛рдВрдХрд┐)ред

рдореИрдВрдиреЗ рдпрд╣ рднреА рдЬреЛрдбрд╝рд╛:
%(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

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ Ubuntu 16.04 рдкрд░ ansible 2.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 рдХреЗ рд╕рд╛рде рдЪрд▓рддреЗ рд╕рдордп рдпрд╣ рддреНрд░реБрдЯрд┐ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдереАред рдореБрдЭреЗ рдбрд┐рдмрдЧ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдХрдорд╛рдВрдб рдХреЛ рдХреЙрдкреА рдХрд░рдирд╛ рдерд╛ рдФрд░ "рдпреВрдирд┐рдХреНрд╕ рдбреЛрдореЗрди рд╕реЙрдХреЗрдЯ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд▓рдВрдмрд╛" рддреНрд░реБрдЯрд┐ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЪрд▓рд╛рдирд╛ рдерд╛ред

рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред

Ansible playbook рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реА рдорд╢реАрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ IP рдФрд░ FQDN рдХреЗ рдмреАрдЪ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдмрд╣реБрдд рдХрд╖реНрдЯрдкреНрд░рдж рд░рд╣реА рд╣реИ ... Ansible рдХреА рдУрд░ рд╕реЗ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╛рдзрд╛рди рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ?

@swoodford , рд╢рд╛рдпрдж рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд▓рд┐рдирдХреНрд╕ рдбрд┐рд╕реНрдЯреНрд░реЛ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдлреЗрдбреЛрд░рд╛ рдЕрдиреБрд░рдХреНрд╖рдХ рдЫреЛрдЯреЗ рдирд┐рдпрдВрддреНрд░рдг рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдкреБрд░рд╛рдиреЗ рдбрд┐рд╕реНрдЯреНрд░реЛрд╕ рдХреЗ рд╕рд╛рде рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрдЧрддрддрд╛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрддрд░рджрд╛рдпреА рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдирдП рдбрд┐рд╕реНрдЯреНрд░реЛ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдм рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдирдП рдбрд┐рд╕реНрдЯреНрд░реЛ рдХреЛ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рд╕реНрдЯреНрд░реЛ рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ansible рдХреЛ рд╣рд╛рд▓рд╛рдВрдХрд┐ dafault рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдмрд╣реБрдд рдЕрдЬреАрдм рдмрд╛рдд рд╣реИред рд╣рдореЗрдВ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рд╕реАрдбреАрдПрд╕рдЯреА рдореЗрдВ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереА (рдФрд░ рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдФрд░ рдмрдЧ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ)ред рдпреВрдирд┐рдХреНрд╕ рдореЗрдВ sun_path рд╕реАрдорд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреБрд░рд╛рдиреА рд╕реАрдорд╛ рд╣реИ рдЬреЛ 2016 рдореЗрдВ рд╣рдо рд╕рднреА рдХреЛ рдХрд╛рдЯрддреА рд╣реИред

рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдЙрдкрд╛рдп: рдХреЛрдИ рдирд╣реАрдВред
рджреВрд╕рд░рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди: рд╕реЙрдХреЗрдЯ рдХрд╛ рдирд╛рдо рдЫреЛрдЯрд╛ рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдШрд░ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рд▓рдВрдмрд╛ рд╣реЛ рддреЛ рднреА рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ
рддреАрд╕рд░рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди: рдЗрд╕реЗ рдХрд╣реАрдВ/tmp/рд▓рдШреБ-рдпрд╛рджреГрдЪреНрдЫрд┐рдХ-рдкрде/рд╕реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВ (рдХреЗрд╡рд▓ рдПрдХ рд╡рд░реНрдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)

рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд╕рдорд╛рдзрд╛рди: sun_path рд╕реАрдорд╛ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВ рдпрд╛ рдПрдХ рд╕рдордЭрджрд╛рд░ 2016 рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрдХ рдмрдврд╝рд╛рдПрдБ (рдСрд╕реНрдЯрд┐рди рд╕рдореВрд╣ / рдкреЙрдЬрд╝рд┐рдХреНрд╕ рд╕реЗ рдХреЛрдИ рднреА рдпрд╣рд╛рдБ рдкрдврд╝ рд░рд╣рд╛ рд╣реИ?)

%(directory) рдЕрд░реНрде рд╣реИ?

@isotopp

рдХреНрдпрд╛ рдпрд╣ ~/.ssh/config рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╕рд┐рдВрдЯреИрдХреНрд╕ (рдЕрдВрдбрд░рд▓рд╛рдЗрди рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде) рд╣реИ?

ControlMaster auto
ControlPath ~/.ssh/_%C

рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдкрд▓рд╛рдпрди рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде ansible.cfg рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбрдмрд▓ %% рд╕рдорд╛рди рд╣реЛрдЧрд╛? рдореИрдВ рдЙрди рджреЛрдиреЛрдВ рдХреЛ рдЙрд╕реА рддрд░рд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреИрд╕реЗ рдореИрдВ рдПрд╕рдПрд╕рдПрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рд╣рд░ рднреА рдХрд░рддрд╛ рд╣реВрдВред

рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдореЗрд░реЗ ansible.cfg рдореЗрдВ control_path рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рдереА рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдВрд╕реНрдХрд░рдг 2.1.3 рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯ рдЖрдпрд╛, рдЙрд╕реА рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдпрд╛ рдЬрд┐рд╕рдиреЗ 2.2.1 рдЪрд▓рд╛рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреА, рдФрд░ рдореБрджреНрджрд╛ рд╕реБрд▓рдЭрд╛ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрднреА рднреА рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИ: ansible 2.2.0.0

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЬреАрдм рдореБрджреНрджрд╛ред рдлреЗрдбреЛрд░рд╛ 24 рдкрд░ ansible 2.2.0.0 -> рд╕рдорд╕реНрдпрд╛ рдореМрдЬреВрдж рдереА
OSX рдкрд░ 2016/07/05 рд╕реЗ git рд╣реЗрдб -> рд╕рдорд╕реНрдпрд╛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред

@bcoca рдореИрдВ рд╣рдореЗрд╢рд╛ рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдХрд╛ рдкреНрд░рд╢рдВрд╕рдХ рд╣реВрдВ (рд╣рд╛рдБ рдореИрдВрдиреЗ рдЙрд╕ рд╕реЗрдВрдЯреЛрд╕ 6.5 рдлрд┐рдХреНрд╕ рдХреЛ рднреЗрдЬрд╛ рд╣реИ)ред рдУрдкрдирд╢/рдбрд┐рд╕реНрдЯреНрд░реЛ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдЗрд╕реЗ рдЧрддрд┐рд╢реАрд▓ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдгрдкрде рд╣реИ?

рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЧрддрд┐рд╢реАрд▓ рд╣реИ, 'рд╕реНрдорд╛рд░реНрдЯ' рдХрдиреЗрдХреНрд╢рди рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдиреЗ рдХреЗ рдкреАрдЫреЗ рдХрд╛ рддрд░реНрдХ рджреЗрдЦреЗрдВ

рд╣реЛрд╕реНрдЯ рд╕реЗ рд╣реЛрд╕реНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдмреИрдХрдкреИрдХ рдореЗрдВ ssh рдХреБрдВрдЬрд┐рдпрд╛рдВ рди рд╣реЛрдВ? :)

рдПрдХ рддрд░рдл рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ %C рдЕрднреА рдПрдХ рдорд╣рд╛рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ EL7 рдореЗрдВ рдУрдкрдирд╢ 6.6 рд╣реИ, рдФрд░ %C рдХреЛ рдУрдкрдирд╢ 6.7 рддрдХ рдЬреЛрдбрд╝рд╛ рдирд╣реАрдВ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕реЗ рдмреИрдХрдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЖрдк EL7 рдкрд░ %l%h%p%r рдХреЗ рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдХрдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реИрд╢ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рд╢рд┐рдк рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬ рдХреЛ рд╕реВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдбрд┐рд╕реНрдЯреНрд░реЛ рдорд╛рд▓рд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХреЛ 7 рд╕рд╛рд▓ рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЕрднреА рднреА Ansible рд╕рдВрд╕реНрдХрд░рдг 2.2 рдФрд░ Ansible Tower 3.1.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдЬреИрд╕рд╛ рдХрд┐ @dennisobrien рдиреЗ рд╣рдорд╛рд░реЗ рдкрд╣рд▓реЗ рдмрддрд╛рдпрд╛ рдерд╛ , рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдХреЛ AWS рдбреЛрдореЗрди рдирд╛рдо рд╕реЗ AWS IP рдкрддреЗ рдореЗрдВ рдмрджрд▓рдиреЗ рд╕реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХреЗрд╡рд▓ рдЗрди рдЪрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдФрд░ рдЗрд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реБрдЖ:

---
ssh_connection:
  control_path: "%(directory)s/%%h-%%p-%%r"

@ рдмреА-рд▓реЙрдиреНрдЧ, control_path %(directory)s/%%C

рдореЗрд░реЗ рд╕рд░реНрд╡рд░ рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдЕрдВрдд рдореЗрдВ рдХреИрд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

@thefourthye рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд╕рд░реНрд╡рд░ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдк рдЗрд╕ рдереНрд░реЗрдб рдореЗрдВ рдкрд╣рд▓реЗ рдЕрдкрдиреА 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

рдФрд░ ssh рдЬреНрдЮрд╛рдд_рд╣реЛрд╕реНрдЯ рдореЗрдВ рдкрддрд╛ рд╣реЛрд╕реНрдЯ рдФрд░ рдЖрдИрдкреА рдЬреЛрдбрд╝реЗрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдИрд╕реА 2 рдкрд░ рдЙрдмрдВрдЯреВ рд╣реИред
рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣реИ:

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 рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рдЙрд╕рдХреЗ рд╕рд╛рде рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ред

@thefourthye , рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдпрд╣рд╛рдВ рдХрд┐рддрдиреА "рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рд╕реБрдЭрд╛рд╡" рджреЗ рд░рд╣реЗ рд╣реИрдВред 50+ рд▓рд╛рдЗрдХ рдХреЗ рд╕рд╛рде рдкреЛрд╕реНрдЯ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдЙрдЪрд┐рдд рд╡рд┐рдХрд▓реНрдк рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЖрдкрдХреЛ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ ansible рдЬрд╛рдирддрд╛ рд╣реИ ред рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ ~/.ansible.cfg ред рд╡рд┐рд╡рд░рдг рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рдордиреЗ рдбреЙрдЯ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдпреВрдирд┐рдХреНрд╕ рд╕рдореНрдореЗрд▓рди рд╣реИред

@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)s ... ansible рдХреЛ рдкреИрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рджред

рджреЛрд╕реНрддреЛрдВ, рдХреГрдкрдпрд╛ рдореМрдЬреВрджрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝реЗрдВ, рдпрд╣ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рдПрдХ рд╣реА рдмрд╛рдд рдФрд░ рдХрд┐рд╕реА рдХреЛ рдПрдХ рд╣реА рд╕рдорд╛рдзрд╛рди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗред рдЙрдЪрд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ https://github.com/ansible/ansible/issues/11536#issuecomment -153030743 рджреЗрдЦреЗрдВред

рдХреЛрдИ, рдХреГрдкрдпрд╛ рдЖрдЧреЗ рд╕реНрдкреИрдо рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдереНрд░реЗрдб рдмрдВрдж рдХрд░реЗрдВред

@ssbarnea harcoded рдХреБрдЫ рднреА рдкреЛрд░реНрдЯреЗрдмрд▓ рдирд╣реАрдВ рд╣реИ ... рдЗрд╕рд▓рд┐рдП рдпрд╣ ansible рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╣реАрдВ рд╣реИ ... рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛ рдпрд╛ macOS рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╣рдордд рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ /tmp рдЪрд┐рдкрдЪрд┐рдкрд╛ рд╣реИ рдФрд░ рдУрдкрдирд╢ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдордЭрджрд╛рд░ рдореЛрдб (0600) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

%C рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рд╛рд▓ рдХреЗ рдУрдкрдирд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ...

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рд╛рдЪреАрди рдПрд╕рдПрд╕рдПрдЪ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛, рдЦрд╛рд╕рдХрд░ рдЙрддреНрддрд░рджрд╛рдпреА рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ред рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рдкреАрдЫреЗ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рднрд╛рд╡рд┐рдд рд▓реЛрдЧ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрддреНрддрд░рджрд╛рдпреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ (рдпреВрдПрдХреНрд╕) рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреЛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЦреБрд▓реЗ рдУрдкрдирд╢ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ 1-2% рд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ рдЬреЛ %C рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЖрдИрдПрдирдЖрдИ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ ASAP рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рджреВрд╕рд░реЗ рд╕рдкреНрддрд╛рд╣ рд╣рдо рдЙрди рдмрдЧреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдирдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреЗ рд╣реИрдВ: %(tmpdir)s m $(configdir)s , %(inventorydir)s ред

рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпреЗ рд▓реЛрдЧ рд╣реИрдВ рддреЛ рд╡реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред

рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдФрд░ рднреА рдмрджрддрд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕реАрдЖрдИ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ Ansible рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рдХрдИ рдЬреЗрдирдХреАрдВрд╕ рдиреЛрдбреНрд╕ рд╣реИрдВ, рдПрдХ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рддрд╣рдд рдЪрд▓рдиреЗ рдкрд░ рд╣рдореЗрдВ рдЕрдХреНрд╕рд░ рдПрд╕рдПрд╕рдПрдЪ рд╕рддреНрд░ рд╣рд╛рдИрдЬреИрдХрд┐рдВрдЧ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рд╡реИрд╕реЗ рднреА рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ рдФрд░ рдЗрд╕ рдЯрд┐рдХрдЯ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ 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 =

рдЪреВрдВрдХрд┐ рдпрд╣ рдмрд╛рддрдЪреАрдд рдЙрдкрд░реЛрдХреНрдд рдкреИрдЪ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЬрд╛рд░реА рд░рд╣рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рд▓реЙрдХ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдпрджрд┐ рд╡рд┐рд╖рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЗ рдФрд░ рдкреНрд░рд╢реНрди рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

renaudguerin picture renaudguerin  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

RaymiiOrg picture RaymiiOrg  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hryamzik picture hryamzik  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

greggilbert picture greggilbert  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alberttwong picture alberttwong  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ