рдЕрдВрдХ рдкреНрд░рдХрд╛рд░: рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ
Ansible рд╕рдВрд╕реНрдХрд░рдг : Ansible 2.0.0.2
рдмреЛрдЯреЛ рд╕рдВрд╕реНрдХрд░рдг : 2.38.0
рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг : 2.7.5
рдкрд░реНрдпрд╛рд╡рд░рдг : RHEL 7.2
рд╕рд╛рд░рд╛рдВрд╢ :
рдореИрдВ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ, рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдордп рдкрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдВрдмреА рдкреНрд▓реЗрдмреБрдХ рдкрд░:
рдЕрдиреБрддреНрддреАрд░реНрдг рд╣реЛрдирд╛! => {"рд╡рд┐рдлрд▓": рд╕рдЪ, "рд╕рдВрджреЗрд╢": "рддреНрд░реБрдЯрд┐! (12 рд╡реАрдВ) рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡реГрджреНрдзрд┐ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд╢реАрдШреНрд░:"}
1.9.4 рдХреЗ рддрд╣рдд рдПрдХ рд╣реА рдкреНрд▓реЗрдмреБрдХ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдореИрдВрдиреЗ рдХрднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрд╛ред рдпрд╣ рддрдм рд╣реЛрдиреЗ рд▓рдЧрд╛ рдЬрдм рдореИрдВрдиреЗ Ansible 2.0 RC1 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ред рдЕрдм рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╢рд╛рдпрдж рдпрд╣ рддреАрди рдореЗрдВ рд╕реЗ рдПрдХ рд╕рдордп рд╣реИ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ 90% рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ Ansible 2.0 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рдирд╛рдЯрдХ рдореЗрдВ рд▓рдЧрднрдЧ 10 рдорд┐рдирдЯ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдПрдХ рд╣реА рдХрд╛рд░реНрдп рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдХрд╛рд░реНрдп рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ - рдпрд╣ рдПрдХ рд▓реВрдк рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реВрдк рдирд╣реАрдВ, рдлрд╛рдЗрд▓ рдХреЙрдкреА, рд▓рд╛рдЗрдирдЗрдирдлрд╛рдЗрд▓, рдЖрджрд┐ред
рдЕрд╕рдлрд▓рддрд╛ рдХрд╛ рдЕрд░реНрде рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╢реБрд░реВ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓реЗ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдореИрдВ рдХрдо рд╕реЗ рдХрдо 12 рд╕реЗрдХреЗрдВрдб рдХрд╛ рд╕рдордп рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реВрдВ?
рдореИрдВрдиреЗ SSH рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдпрд╣ рд╕реЛрдЪрдХрд░ рдХрд┐ рдпрд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдЧрддрд┐ рджреЗрдЧрд╛ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рд╛ред рдЗрд╕рдиреЗ рдкреНрд▓реЗрдмреБрдХ рдХреЗ рд╕рдордп рдХреЛ рднреА рдХрдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдбрд┐рдмрдЧ -vvv рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдореИрдВрдиреЗ рдХреБрдЫ рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рджреЗрдЦрд╛ред рдХреИрд╕реЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд┐рдВрдЧ рд╕рдХреНрд░рд┐рдп рд╣реИ?
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ: рдЪрд┐рдВрддрд┐рдд:ред
рдЙрддреНрддрд░ рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╕рдВрд╕реНрдХрд░рдг: 2.0.0.2
рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг: 2.7.6
рдкрд░реНрдпрд╛рд╡рд░рдг: Ubuntu 14.04
рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ:
рдЙрддреНрддрд░ рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╕рдВрд╕реНрдХрд░рдг: 2.0.0.2
рдкрд░реНрдпрд╛рд╡рд░рдг: Ubuntu 14.04
рд╡рд╣реАред рд╕реЗрдЯрдЕрдк рдЪрд░рдг рдореЗрдВ рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдХреЗ рджреМрд░рд╛рди рдпрд╣ рдЪрд▓ рд░рд╣рд╛ рд╣реИред
рдЙрддреНрддрд░ рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╕рдВрд╕реНрдХрд░рдг: 2.0.0.2
рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг: 2.7.6
рдкрд░реНрдпрд╛рд╡рд░рдг: Ubuntu 14.04
рдмрд╕ рдПрдХ рдиреЛрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдкреИрд░рд╛рдорд┐рдХреЛ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ рдореБрджреНрджрд╛ рдЪрд▓рд╛ рдЧрдпрд╛ рдФрд░ рдкреНрд▓реЗрдмреБрдХ рдареАрдХ рдЪрд▓рд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдУрдкрдирдПрд╕рдПрд╕рдПрдЪ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд▓рдЧрддрд╛ рд╣реИред
рддреЛ рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ, рдЙрдирдХреЗ рд▓рд┐рдП -c paramiko
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдЬрдм рддрдХ рдХрд┐ рд╡реЗ рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░рддреЗред
# 14020 рдХрд╛ рдбреВрдк
рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ # 14020 рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ рдФрд░ рдЬрд┐рди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рдореИрдВ рдпрд╣рд╛рдВ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реВрдВ рд╡реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рд╕рдорд╛рди рд╣реИрдВ, рддреЛ рдореИрдВ рдмрд╣рд╕ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред
рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ 'ssh' рдкрд░ рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ 'рд╕реНрдерд╛рдиреАрдп' рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╡реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП 'рдкреНрд░рд╛рдВрдкреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди' рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдлрд┐рд░ рднреА, рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХреНрдпрд╛ рдХреЛрдИ рдХреГрдкрдпрд╛ рдкреНрд▓реЗрдмреБрдХ рдХрд╛ рдПрдХ рдЕрдВрд╢ рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИ (рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИ; рдореИрдВ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдкреВрдЫ рд░рд╣рд╛ рд╣реВрдВ, рдмрд╕ рдХреБрдЫ рд╕рдВрджрд░реНрдн), рд╕рд╛рде рд╣реА ANSIBLE_DEBUG=y
рд╕рд╛рде рдЕрд╕рдлрд▓ рд░рди рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рднреАред -vvvvv
?
рдореЗрд░реЗ рд╕рд╛рде рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ:
рдЙрддреНрддрд░: 2.0.1.0-1ppa ~ рд╕рдЯреАрдХ
рдЙрдмреБрдиреНрдЯреБ 12.04
# ansible 'web01' -m shell -a 'dmesg | tail -20' --become -vvvvv
Using /etc/ansible/ansible.cfg as config file
Loaded callback minimal of type stdout, v2.0
<web01> ESTABLISH SSH CONNECTION FOR USER: ansible
<web01> SSH: ansible.cfg set ssh_args: (-o)(ControlMaster=auto)(-o)(ControlPersist=60s)
<web01> SSH: ansible_password/ansible_ssh_pass not set: (-o)(KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no)
<web01> SSH: ANSIBLE_REMOTE_USER/remote_user/ansible_user/user/-u set: (-o)(User=ansible)
<web01> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10)
<web01> SSH: PlayContext set ssh_common_args: ()
<web01> SSH: PlayContext set ssh_extra_args: ()
<web01> SSH: found only ControlPersist; added ControlPath: (-o)(ControlPath=/home/user01/.ansible/cp/ansible-ssh-%h-%p-%r)
<web01> SSH: EXEC ssh -C -vvv -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=ansible -o ConnectTimeout=10 -o ControlPath=/home/user01/.ansible/cp/ansible-ssh-%h-%p-%r web01 '/bin/sh -c '"'"'sudo -H -S -n -u root /bin/sh -c '"'"'"'"'"'"'"'"'echo BECOME-SUCCESS-shpsnlhxruskuujwzskohueoshfyifah; /bin/sh -c '"'"'"'"'"'"'"'"'
web01 | FAILED | rc=0 >>
Timeout (12s) waiting for privilege escalation prompt:
рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрд╕рдлрд▓ рдерд╛ред
@nghnam рдХреНрдпрд╛ рдЖрдк рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ ANSIBLE_DEBUG = 1 рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд╕рдлрд▓ рд░рди рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдкреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
# ansible-playbook playbooks/test.yaml -vvvv
TASK [setup] *******************************************************************
<my.ip.address.com> ESTABLISH SSH CONNECTION FOR USER: my_remote_user
<my.ip.address.com> SSH: EXEC ssh -C -vvv -o ControlMaster=auto -o ControlPersist=60s -o ControlPath=/tmp/ansible-ssh-%h-%p-%r -o IdentitiesOnly=yes -o PasswordAuthentication=no -o StrictHostKeyChecking=no -o 'IdentityFile="/home/padraic/.ssh/my_totally_secure_identity_file"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=my_remote_user -o ConnectTimeout=10 my.ip.address.com '/bin/sh -c '"'"'sudo
-i -u root /bin/sh -c '"'"'"'"'"'"'"'"'echo BECOME-SUCCESS-jpxmltbgxmgjairqscynmjxlxpgbtotc; /bin/sh -c '"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 /usr/bin/python'"'"'"
'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"''"'"'"'"'"'"'"'"''"'"''
fatal: [my.ip.address.com]: FAILED! => {"failed": true, "msg": "Timeout (12s) waiting for privilege escalation prompt: "}
рд╣реЗ рд▓реЛрдЧ, v2.0.1.0
рдкрд░ рдпрд╣рд╛рдВ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ред @Bbyhuy рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ -c paramiko
рд╣рд░ рдмрд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди # 13278 рдореЗрдВ
рдпрд╣рд╛рдВ ANSIBLE_DEBUG=y ansible all -m ping -vvvvv
рдХрд╛ рдбрд┐рдмрдЧ рд▓реЙрдЧ рд╣реИ рдЬрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИ: https://gist.github.com/oliver/e5a24a5b37c0006bb220
рдпрд╣ Ansible 2.0.1.0-1ppa рдХреЗ рд╕рд╛рде рд╣реИ ~ Ubuntu 12.04 рдкрд░ рд╕рдЯреАрдХ, рд╕реНрдерд╛рдиреАрдп рд╣реЛрд╕реНрдЯ рдкрд░ рдЪрд▓ рд░рд╣реЗ рдбреЗрдмрд┐рдпрди 8.2 рд╡реАрдПрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛ рд░рд╣рд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ)ред рдореИрдВ become=True
рдФрд░ become_method=su
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ hosts
рд╕рд╛рде ansible_sudo_pass='pass'
hosts
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░реВрдЯ рдкрд╛рд╕рд╡рд░реНрдб рдЬреЛрдбрд╝рд╛ рд╣реИред рдЗрд╕ рд╕реЗрдЯрдЕрдк рдиреЗ рд╕рдЯреАрдХ 1.9.4-1ppa ~ рд╕рдЯреАрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ред
рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯ # 14426 рдпрд╛ # 13278 рдкрд░ рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ with_items рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд▓рдЧрддреА рд╣реИ (рдпрд╣ рдХрд┐рд╕реА рднреА рд╕рд░рд▓ рдкреНрд▓реЗрдмреБрдХ рдХреЗ рд╕рд╛рде рд╣реЛрддреА рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ -m ping
), рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ рдпрд╣рд╛рдБред
@oliver рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдмреЗрдореЗрд▓ рд▓рдЧрддрд╛ рд╣реИ, Passwort:
su i18n рд╢реАрдШреНрд░ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛ рд░рд╣рд╛ рд╣реИред
@bcoca рдЕрдЪреНрдЫреА рдкрдХрдбрд╝ (рдФрд░ рдПрдХ рд╕рд░реНрд╡рд░ рдкрд░ i18n рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реНрдХ)!
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рдореИрдВ $ LANG рдХреЛ рдПрдХ рд░рд┐рдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд▓рдХреНрд╖реНрдп рдкреНрд░рдгрд╛рд▓реА рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдХреЗрд▓ рдХреЛ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ Gist рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЕрдм "рдкрд╛рд╕рд╡рд░реНрдб:" рд╕рдВрдХреЗрдд рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реЛрддрд╛ рд╣реИред
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдореБрджреНрджреЗ 'рд╕реБ' рд╢реАрдШреНрд░ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред
рдЕрднреА рднреА рдПрдХ рд╣реА рдореБрджреНрджрд╛ (2.0.1.0), msg рд╣реИ
echo $HOME/.ansible/tmp/ansible-tmp-1459250484.21-51977895368027
" && рдЧреВрдВрдЬ " echo $HOME/.ansible/tmp/ansible-tmp-1459250484.21-51977895368027
")' '' '' '
рдЕрдЧрд░ рдореИрдВ рд╕реБрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ
рдирдП рд╕рд┐рд░реЗ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдП рдЧрдП Ubuntu 14.04 EC2 рд╕рд░реНрд╡рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕реЗрдЯрдЕрдк рдЪрд░рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди рдпрд╣ рдЪрд▓ рд░рд╣рд╛ рд╣реИред
рдЬрдм рдореИрдВ рджреВрд╕рд░реА рдмрд╛рд░ рдСрдЯреЛрдореЗрд╢рди рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдЙрд╕реА рд╕рд░реНрд╡рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╣рд░ рд╕рдордп рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдореИрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдПрдХ рдлреНрд░реЗрд╢ рд╕рд░реНрд╡рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрдХ рдРрдиреНрд╕рд┐рдмрд▓ рдСрдЯреЛрдореЗрд╢рди рдЪрд▓рд╛рддрд╛ рд╣реВрдВ
рдЙрддреНрддрд░ рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╕рдВрд╕реНрдХрд░рдг: 2.0.1.0
рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг: 2.7.6
рдкрд░реНрдпрд╛рд╡рд░рдг: Ubuntu 14.04
рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛рддрд╛ рд╣реВрдВ:
ANSIBLE_DEBUG=y ansible-playbook test.yaml -t configure -l <EC2_ID> -vvvvv
рдХреГрдкрдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд┐рд╕реНрдЯ рджреЗрдЦреЗрдВ: https://gist.github.com/Lowess/77442cf0533629e80b55faa7d6d91eb0
рдХреНрдпрд╛ рдореИрдВ рдХрдо рд╕реЗ рдХрдо 12 рд╕реЗрдХреЗрдВрдб рдХрд╛ рд╕рдордп рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реВрдВ?
"12 рд╕реЗрдХрдВрдб рдХрд╛ рд╕рдордп" timeout
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧ + 2s ( ssh.py рджреЗрдЦреЗрдВ) рд╣реИред
рдпрд╣ рдареАрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди timeout
30 рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рд╣рдореЗрдВ 32 рд╡рд╛рдВ рдПрд╕реНрдХреЗрд▓реЗрд╢рди рдЯрд╛рдЗрдордЖрдЙрдЯ рдорд┐рд▓рд╛, рдЬреЛ рдЕрдм рддрдХ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рдерд╛ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╣рдорд╛рд░реЗ рдзреАрдореА AWS EC2 рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП) рдмрдЧ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
@somechris рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рдЖрдкрдХреА рд╕реЗрдЯрд┐рдВрдЧ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░ рдЧрдпрд╛!
рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ setup
рдЪрд░рдг рд▓рдЧрднрдЧ 20 - 25 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рд╣реИ рдЬрдм рдореИрдВ AWS рдХреЗ рдЦрд┐рд▓рд╛рдл Ansible рдХреЛ рдЪрд▓рд╛рддреЗ рд╣реБрдП рдЗрд╕ рддрд░рд╣ рдХреЗ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдПрдХ рдореБрджреНрджрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдВрд╕рд┐рдмрд▓ рд╡реА 1 рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдЙрд╕ рдЯрд╛рдЗрдордЖрдЙрдЯ рдореВрд▓реНрдп рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереАред
рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдзрдиреНрдпрд╡рд╛рдж!
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЕрднреА v1 рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ред
@amenonsen рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рднреА рдЕрдм рдореЗрд░реЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╕рдЯреАрдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рд╡рд╣реА рдореБрджреНрджрд╛ред
Ansible Host: Ubuntu 14.04
Managed Hosts: CentOS 7.2
рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рд╕рдорд╛рдзрд╛рди рдиреЗ рдорджрдж рдХреА рд╣реИ
pre_tasks:
- name: disable fingerprint checking that may be enabled; when enabled, causes ssh issues
command: authconfig --disablefingerprint --update
become: yes
рд▓рдХреНрд╖рдг рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рдЬреИрд╕реЗ рдереЗ (рдпрд╣рд╛рдБ рд╕реЗрдВрдЯреЛрд╕ рд╣реЛрд╕реНрдЯ рд╕реЗ рд╕рд┐рд╕рд▓реЙрдЧ рд╣реИ)
Apr 7 22:44:12 srv-01 python: ansible-file Invoked with directory_mode=None force=False remote_src=None path=/etc/connector owner=connector follow=False group=connector state=directory content=NOT_LOGGING_PARAMETER serole=None diff_peek=None setype=None selevel=None original_basename=None regexp=None validate=None src=None seuser=None recurse=False delimiter=None mode=None backup=None
Apr 7 22:44:13 srv-01 dbus[703]: [system] Activating via systemd: service name='net.reactivated.Fprint' unit='fprintd.service'
Apr 7 22:44:13 srv-01 dbus-daemon: dbus[703]: [system] Activating via systemd: service name='net.reactivated.Fprint' unit='fprintd.service'
Apr 7 22:44:13 srv-01 systemd: start request repeated too quickly for fprintd.service
Apr 7 22:44:13 srv-01 systemd: Failed to start Fingerprint Authentication Daemon.
Apr 7 22:44:13 srv-01 systemd: fprintd.service failed.
Apr 7 22:44:38 srv-01 dbus[703]: [system] Failed to activate service 'net.reactivated.Fprint': timed out
Apr 7 22:44:38 srv-01 dbus-daemon: dbus[703]: [system] Failed to activate service 'net.reactivated.Fprint': timed out
@szhem рднрдпрд╛рдирдХ, рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рддрдп!
рдСрд░реНрдЯрдХреЛрдиреНрдлрд┐рдЧ - рдбрд┐рд╕рд┐рдмрд▓рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ --рдЕрдкрдбреЗрдЯ
Ubnutu рдкрд░ рдПрдХ рд╕рдорд╛рди рдХрдорд╛рдВрдб рд╣реИ 14.04? рд╣рдореЗрдВ рднреА рд╣реЛ рд░рд╣рд╛ рд╣реИ
Ansible.cfg рдореЗрдВ [рдбрд┐рдлреЙрд▓реНрдЯреНрд╕] рд╕реЗрдХреНрд╢рди рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ = рдкреИрд░рд╛рдорд┐рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдВ
ansible.cfg
, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдиреЗ 2.0+.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП 10+ рд╕рд░реНрд╡рд░ рдбрд┐рдкреНрд▓реЙрдп рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ:
[defaults]
timeout = 30
Paramiko рдореЗрд░реЗ рдЧрдврд╝ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ ssh рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдорд╛рдЗрдирд╕ рдмрди / рдмрди_рд╕рд░ / рдмрди_рдорд┐рдереЛрдб: рд╕реБ)ред рдореИрдВ рдЗрд╕ рдмрдЧ рд╕реЗ рдереЛрдбрд╝рд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдХреЛрдИ рд╡рд┐рд╡рд░рдг рд╣реИ рдЬреЛ рдореИрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
<vagrant.dev> PUT /var/folders/br/p6m9m2ks0v9868lpyphsxdfr0000gp/T/tmpqcF4PG TO /home/vagrant/.ansible/tmp/ansible-tmp-1466186263.1-239875858441470/setup
<vagrant.dev> SSH: EXEC sshpass -d25 sftp -b - -C -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o Port=22 -o User=vagrant -o ConnectTimeout=15 -o ControlPath=/Users/vagrant/.ansible/cp/ansible-ssh-%h-%p-%r '[vagrant.dev]'
fatal: [vagrant.dev]: UNREACHABLE! => {"changed": false, "msg": "ERROR! SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh", "unreachable": true}
рдореБрдЭреЗ рднреА рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╕реЗрдЯрдЕрдк рд╕рд┐рд░реНрдл 2.x рдореЗрдВ рдзреАрдорд╛ рд╣реИред рд╣рдо 2.1 рдХреЗ рдЦрд┐рд▓рд╛рдл рдЪрд▓рдиреЗ рдкрд░ рдмрд╣реБрдд рдмрд╛рд░ рд╕реЗрдЯрдЕрдк рдЯрд╛рдЗрдордЖрдЙрдЯ рджреЗрдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди 1.9 рдХреЗ рд╕рд╛рде рдХрднреА рдирд╣реАрдВред рд╣рдордиреЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рдмрдврд╝рд╛рдХрд░ 30 рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рдЕрдХреНрд╕рд░ 2.1 рдкрд░ рд╣реЛрддрд╛ рд╣реИред (рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдмрдврд╝ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реИ рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬреЛ рдХрднреА рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред)
FYI рдХрд░реЗрдВ рд╣рдордиреЗ рдЙрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред рд╣рдордиреЗ рдЕрдкрдиреЗ рдЖрд░рдПрдЪрдИрдПрд▓ 6.7 рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП
рд╣рдо рдЕрдкрдиреЗ рдЬреЗрдирдХрд┐рдВрд╕ рджрд╛рд╕реЛрдВ рдФрд░ рдЯреЙрд╡рд░ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рднреА рдЖрд░рдПрдЪрдИрдПрд▓ 7.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
CentOS рдХреЗ рд╕рд╛рде рд╕реНрд░реЛрдд рд╕реЗ 2.2 рд░рдирд┐рдВрдЧ рдХрд░рдирд╛ Azure рд╕реЗ 7.2 рд╣реЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИред
рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдХреБрдЫ рд╕рд┐рд╕реНрдЯрдордб рд╕реЗрд╡рд╛ рдХреЙрд▓ рдЯрд┐рдореМрдЯ (12s) рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИред
рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ / / / sudoers рдореЗрдВ nopasswd рдЬреЛрдбрд╝рдХрд░ рдЗрд╕ рддреНрд░реБрдЯрд┐ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд▓рд┐рдпрд╛
username ALL=(ALL) NOPASSWD:ALL
рд╕реВрдбреЛрд░реНрд╕ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
@ рд╡рдиреНрдбрд░ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА nopasswd рд╣реЛрдиреЗ рдкрд░ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░
рдХреНрдпрд╛ рдЖрдкрдиреЗ рдиреЛрдбреНрд╕ рдкрд░ рдЕрдкрдиреЗ ssh рд╕рд░реНрд╡рд░ рдХреЛ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереА? Ssh рдХреЛ рдиреЛрдб рдореЗрдВ рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ? рдиреЛрдбреНрд╕ рдкрд░ UseDNS no
рд╕реЗ /etc/ssh/sshd_config
рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рдЕрдиреБрддреНрддреАрд░реНрдг рд╣реЛрдирд╛! => {"рд╡рд┐рдлрд▓": рд╕рдЪ, "рд╕рдВрджреЗрд╢": "рдЯрд╛рдЗрдордЖрдЙрдЯ (12s) рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡реГрджреНрдзрд┐ рд╢реАрдШреНрд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ":
OS: CentOS Linux рд░рд┐рд▓реАрдЬрд╝ 7.2.1511 (рдХреЛрд░)
рдЙрддреНрддрд░ рджреЗрдиреЗ рдпреЛрдЧреНрдп: ansible 2.2.0
рд░рд┐рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдПред рдореИрдВ FreeBSD PF рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рджреЗрдЦрддрд╛ рд╣реВрдБред SSH рдкреЛрд░реНрдЯ рдЦреБрд▓рд╛ рд╣реИ рдФрд░ рдПрдХ рдХрдорд╛рдВрдбрд▓рд╛рдЗрди рд╕реЗ SSH рдХрдиреЗрдХреНрд╢рди рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдкрд░ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
ред
рд╕реЗ:
timeout = 2 + self._play_context.timeout
рд╕реЗрд╡рд╛:
timeout = 30 + self._play_context.timeout
рд▓реИрдЧреА рд╡рд╛рддрд╛рд╡рд░рдг (рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмрд╛рджрд▓ рдЖрджрд┐) рд╕рдЦреНрдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рдХрд╛рд░рдг рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреЗ рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди ansible.cfg
рд╕рдВрдкрд╛рджрди рдХрд░рддреЗ рд╕рдордп рд╕рдВрджрд░реНрдн рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛ рд░рд╣реЗ рд╣реИрдВред
# 13278 рдореЗрдВ рддрд╣
рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, become_user: <username>
рдЬреЛрдбрд╝рдирд╛
рддреНрд░реБрдЯрд┐ рдХреЛ рджреВрд░ рдХрд┐рдпрд╛
рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реБрдП, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдореЗрд░реА -c paramiko
рдХреЛ рдореЗрд░реА ansible-play рдХрдорд╛рдВрдб рдореЗрдВ рдорджрдж рдорд┐рд▓реАред
рдореИрдВ 2.1.1.0 ansible рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред рдореЗрд░реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдореЗрд░реА рдкреБрд╕реНрддрдХ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде рдерд╛:
remote_user: david
sudo: yes
рдФрд░ рдХрдорд╛рдВрдб рдореЗрдВ --ask-become-pass
рдЬреЛрдбрд╝рдирд╛ рд╣реИред
рдпрд╣рд╛рдБ рдиреМрд╕рд┐рдЦрд┐рдпрд╛, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереАред рдЗрд╕рдХреЗ рд╕рд╛рде рдлрд┐рдХреНрд╕реНрдб:
sudo:yes
рдЬреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд:
become: yes
become_user: root
become_method: su
рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдореЗрд░реА рдЕрдкрдиреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддреНрд░реБрдЯрд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдореИрдВ рдкрджрд╛рд╡рдирдд рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рд╕рдВрд╕реНрдХрд░рдг 2.0.0.2
рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЧрд▓рдд рдмрди_method (su) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛, рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ (sudo) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
become: yes
рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ рдЬрдм рдореИрдВ ansible (ctrl + c) рдХреЛ рдорд╛рд░рддрд╛ рд╣реВрдВ рдФрд░ рдирд╛рдЯрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред рдЬреЛрдбрд╝рдиреЗ -c paramiko рдпрд╣рд╛рдБ рднреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░рддреА рд╣реИред рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдкрд░ рдХреБрдЫ рд╕рдордп рдХреА рдЬрд░реВрд░рдд рд╣реИ ...
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдирд╛рдЯрдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдирд╛рдЯрдХ рдХреЗ рджреМрд░рд╛рди рдХрднреА рднреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдордп рдкрд░ рдирд╣реАрдВред
рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдмрд╛рдд рднреА рдХреНрдпрд╛ рдереА? 2 рдорд╛рдореВрд▓реА рд╕рдВрд╢реЛрдзрди рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рдореЗрд░реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ playbooks рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЯреВрдЯ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕ рд╕рдм рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рджреЛрд╖рдкреВрд░реНрдг рдХрд╛рдо рдХрд┐рдпрд╛ред
https://github.com/ansible/ansible/issues/14426#issuecomment -+реиреж,релреп,рейрео,рейрежрез @somechris рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╕рдордп рд╕рдорд╛рдкреНрддрд┐ рд╡реГрджреНрдзрд┐ рд╕рдордп рд╕рдорд╛рдкреНрддрд┐ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдкреНрд░рд▓реЗрдЦрди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ:
рдпрд╣ рдХрдиреЗрдХреНрд╢рди рдкреНрд░рдпрд╛рд╕реЛрдВ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ SSH рд╕рдордп-рд╕реАрдорд╛ рд╣реИ:
рдЕрдЧрд░ рд▓реЛрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЯрд╛рдЗрдордЖрдЙрдЯ рдмрдврд╝рдиреЗ рд╕реЗ рдПрд╕реНрдХреЗрд▓реЗрд╢рди рдкреНрд░реЙрдореНрдкреНрдЯ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреВрд░ рд╣реЛ рд░рд╣реА рд╣реИрдВ, рддреЛ рдРрд╕рд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдлрд┐рд░ рдХрд╣реАрдВ рдФрд░ рдПрдХ рдФрд░ рднрдпрд╛рд╡рд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИред
@tsoikkel рдиреЗ рдпрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛:
https://github.com/ansible/ansible/issues/14426#issuecomment -245256330
рдЬреЛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рд╕рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдЭрд╛рд╡ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╕рдордп-рд╕реАрдорд╛ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рд╡реГрджреНрдзрд┐ рдХреА рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдкреНрд░рддрд┐рдмрджреНрдз рд╕рдВрджрд░реНрднрд┐рдд рд▓рд┐рдВрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХреЛрдб рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рд╣реИ:
https://github.com/ansible/ansible/blob/devel/lib/ansible/plugins/connection/ssh.py#L418 -L421
рдХреНрдпрд╛ рд╡реГрджреНрдзрд┐ рдХреА рд╕рдорд╕реНрдпрд╛ рдПрдХ рдПрд╕рдПрд╕рдПрдЪ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реИ, рдпрд╛ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрди рдЯрд╛рдЗрдордЖрдЙрдЯ, рдпрд╛ рдХреБрдЫ рдФрд░ рд╣реИ? рдпрд╣ рдЗрд╕ рдЪрд░реНрдЪрд╛ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрд╕рд▓реА рдореВрд▓ рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реИред
рдпрд╣рд╛рдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддреНрд╡рд░рд┐рдд рдЧрддрд┐ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ:
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВ рдПрдХ рдЕрдЬрдЧрд░ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╣реЛрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛред рд╢рд╛рдпрдж рдХреЛрдИ рдпрд╣рд╛рдБ рдкреНрд░рд╡рд╛рд╣ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ timeout
рдореВрд▓реНрдп рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рдХрд╛рд░рдг рддреНрд░реБрдЯрд┐ рдХреЛ рдХреИрд╕реЗ рдЙрдард╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рдмрдврд╝рд╛рдХрд░ рд╣рдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░рдг рдХреЛ рдЫрд┐рдкрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ ssh рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ 12s рдХреЗ рд░рд┐рдЯреНрд░реА рд╡реИрд▓реНрдпреВ рдХреЗ рд╕рд╛рде рдХреНрдпреЛрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ рдЬреЛ рдЕрднреА рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ ansible рд╣реЛрд╕реНрдЯ рд╕реЗ рдЗрддрдиреЗ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рдХреНрдпреЛрдВ рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реЗрдЯрдЕрдк рдореЗрдВ 50 рдиреЛрдбреНрд╕ рд╣реИрдВ, рдЬреЛ рдХрд┐ ansible рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рд╕рдордп рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдиреЛрдбреНрд╕ рдФрд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ 3% рд╕рдордп рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рд╣рдо рджреВрд╕рд░реА рдмрд╛рд░ рдкреНрд▓реЗрдмреБрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдареАрдХ рд╣реЛрдЧрд╛ред
рдирдорд╕реНрддреЗ,
рдмрдВрдж рдЯрд┐рдХрдЯ рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред
рд╣рдордиреЗ 2.2.5 рдФрд░ 2.2.2 рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ рдФрд░ рд╣рдордиреЗ рдкрд╛рдпрд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рдкрд╛рдпрдерди 3.5 рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рдкрд╛рдпрдерди 2.7 рдореЗрдВ рдпрд╣ рд╕рдм рдареАрдХ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред
рдЕрднреА рднреА рдЗрд╕рдХреЗ рд╕рд╛рде рдореБрджреНрджрд╛ рд╣реИ
рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдореБрджреНрджрд╛ рд╣реИред рдХреНрдпреЛрдВ рдмрдВрдж рд╣реИ рдореБрджреНрджрд╛?
рдореИрдВ рднреА рдЗрд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рддрдп рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рдмрдВрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдирд╡реАрдирддрдо ansible рдореЗрдВ рдпрд╣ рджреЗрдЦрдХрд░ред рдпрд╣ рдмрдВрдж рдХреНрдпреЛрдВ рд╣реИ?
рдореИрдВ рдЗрд╕реЗ 2.3.0 рдореЗрдВ рднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ
рдХреГрдкрдпрд╛ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдКрдкрд░ рдореБрджреНрджреЗ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВред рдореЙрдбреНрд╕ рдХрд╛ рдЬрд╡рд╛рдм рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдмрдВрдж рд╣реИред
рдореБрдЭреЗ -n
рдзреНрд╡рдЬ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЬреЛ рдмрд┐рдирд╛ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ sudo
'рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ред
рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛, рддрдм рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣реЛрдиреЗ рд▓рдЧреАред
@Davidmoshal рдХреА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореИрдВрдиреЗ become: yes
рд╕реЗ become: root
рдФрд░ рдореЗрд░рд╛ рдореБрджреНрджрд╛ рдЪрд▓рд╛ рдЧрдпрд╛ред
become: root
рдЧрд▓рдд рд╣реИ, рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ True
become
рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реИред
рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ansible1.9 рдореЗрд░реЗ рд╕рднреА рдЕрдЬреАрдм SSH рдХрдиреЗрдХреНрд╢рди рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ ansible2.x рдореЗрдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рдЬрд▓реНрдж рд╣реА рдХрд┐рд╕реА рднреА рд╕рдордп рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛ред рдореИрдВрдиреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рджреЗрдЦреА рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рдЕрд╕рд╣рдордд рд╣реВрдВред рдПрдХрдорд╛рддреНрд░ рдЪрд░ рдЬреЛ рдореИрдВрдиреЗ рдмрджрд▓рд╛ рд╣реИ, рд╡рд╣ рдПрдХ рдЕрдиреВрд╕реВрдЪрд┐рдд рдЙрдиреНрдирдпрди рд╣реИред рдореИрдВ 70 рд╕реЗ рдЕрдзрд┐рдХ рд╕рд░реНрд╡рд░реЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рдирдореЗрдВ ansible1.9 рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, ansible 2.0 рдореЗрд░реЗ рдкрд╛рд╕ рдореМрдЬреВрдж рд╣рд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЕрдирдЪрд╛рд╣рд╛ рдмрдЧ рд╣реИред рдирд╣реАрдВ ssh, рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкрд░рддред
рдмрд╕ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереА рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ 4-5 рдмрд╛рд░ рд╣реЛ рд░рд╣рд╛ рдерд╛ред Ansible 2.3, рдЙрдмрдВрдЯреВ 16.04.1ред
рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЖрдЬ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рд╣реЛрдиреЗ рд▓рдЧрд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рд╡рд╣рд╛рдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рдпрд╣ рд╕реЛрдЪрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рдиреЛрдб рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдиреЛрдб рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдФрд░ рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рд╕рдорд╕реНрдпрд╛ рдЪрд▓реА рдЧрдИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ 2.3.0.0 рдФрд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд┐рдВрдЧ рдХреЗ рд╕рд╛рде 2.4.1.0 рдХреЗ рд╕рд╛рде рднреА рдпрд╣реА рдореБрджреНрджрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдЕрдВрдд рдореЗрдВ рдЧрд▓рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдХрд╛рд░рдг, рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдк рд▓рд╛рдЗрдирд┐рдВрдЧ рдХреЛ рджреБрд░реНрдШрдЯрдирд╛ рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрдм рддрдХ, рдореБрдЭреЗ рдкреНрд░реА-2.0 рд╕реНрд╡рд┐рдЪ рдкрд░ рд╕рдВрджреЗрд╣ рд╣реИ), рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдпрд╣рд╛рдВ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡реГрджреНрдзрд┐ рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рд╣реБрдИред
рдореИрдВ рдХреЗрд╡рд▓ become = True
рдФрд░ become_method = sudo
рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдХреЗрд╡рд▓ 'рд╡рд┐рд╢реЗрд╖' рдЪреАрдЬ рдЬреЛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд╣ ANSIBLE_SSH_ARGS
рдЗрд╕рд▓рд┐рдП рдпрд╣ рд▓рд┐рдЦрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ UserKnownHostsFile
рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╕реНрдЯрдо рд╕реНрдерд╛рди рдкрд░ рд╣реИ - рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛?
рдореИрдВрдиреЗ рдкреИрд░рд╛рдорд┐рдХреЛ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рдЯреЗрд╕реНрдЯ рд╕реЗрдЯрдЕрдк рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ рдФрд░ рдЬрд▓ рдЧрдпрд╛ рдФрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рднреА рдХрд╛рдо рдирд╣реАрдВ рдЖрдпрд╛, рдпрд╣ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдбрдХреНрд╢рди рдХреЗ рдорд╛рд╣реМрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдореЗрд░реЗ рдЯреЗрд╕реНрдЯ-рд╕реЗрдЯрдЕрдк рджреЛрдиреЛрдВ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред
рд╕реЗрдЯ рдЕрдк:
рдкреНрд▓реЗрдмреБрдХ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ, рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдпрд╣ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХрд╛рд░реНрд░рд╡рд╛рдИ (рдлрд╝реЛрд▓реНрдбрд░ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдерд╛) рдХреЗ рджреМрд░рд╛рди рдерд╛ред рджреЛ рд╡реАрдПрдо рдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "рдЖрд╡рд╛рд░рд╛" рд╣реИ рдФрд░ рд╕реЛрд▓рд╛рд░рд┐рд╕ рдмреЙрдХреНрд╕ рдХрд╛ рдХреЛрдИ рд░реВрдЯ рдкрд╛рд╕рд╡рд░реНрдб рдирд╣реАрдВ рд╣реИред
рдореИрдВрдиреЗ --ask-рдмрдирдиреЗ-рдкрд╛рд╕ рдФрд░ ENTER рджрдмрд╛рдпрд╛ред рдлрд┐рд░ рднреА, рддреНрд░реБрдЯрд┐ рд╣реБрдИ ...
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдереА (рдмрдЧ рдирд╣реАрдВ) рдЬрд╣рд╛рдВ DNS рд╣рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред sudo рдорд╢реАрди рдХреЗ рд╣реЛрд╕реНрдЯрдирд╛рдо рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ DNS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВрдиреЗ рдЕрдкрдиреЗ /etc/resolv.conf рдореЗрдВ DNS рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ред
рдЬреАрд╕реАрдИ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЬреАрд╕реАрдИ рдХреЗ рд╕рд╛рде рдЬреАрд╕реАрдИ 2.5 рдореЗрдВ рдЕрдХреНрд╕рд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИред рдЕрдм рддрдХ paramiko рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╕рдорд╛рдзрд╛рди рд▓рдЧрддрд╛ рд╣реИред
рдЕрдЧрд░ рдЖрдк ControlPersist
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдореБрдЭреЗ killall ssh
, рд╢рд╛рдпрдж рдПрдХ рдмрд╛рд╕реА ssh рдХрдиреЗрдХреНрд╢рди рджреЗрдирд╛ рдкрдбрд╝рд╛ред
рдирдорд╕реНрддреЗ, рдореИрдВ ubuntu 16.04 рдХреЛ ansible 2.4.2.0 рдХреЗ рд╕рд╛рде рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рд╣реА рдкрд░реЗрд╢рд╛рдиреА рд╣реИ, --paramiko рд╡рд┐рдХрд▓реНрдк рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕реА рдорд╛рдорд▓реЗ рдореЗрдВ рдореЗрд░реЗ ~ / .shsh / config рдХреЛ рди рдкрдврд╝реЗрдВ, рдЗрд╕рд▓рд┐рдП --paramiko рдХреЗ рдмрдЬрд╛рдп рдореИрдВ рд╣рд▓ рдХрд░рддрд╛ рд╣реВрдВред ansible.cfg add рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд┐рдВрдЧ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реИ) рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛:
[ssh_connection]
pipelining = False
рдЬрдм LXD Ubuntu 16.04 рдХрдВрдЯреЗрдирд░ рдкрд░ рдПрдХ рдкреНрд▓реЗрдмреБрдХ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛, рддреЛ рдореИрдВрдиреЗ рдЙрд╕реА рдореБрджреНрджреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ред рдореИрдВ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдмрд╕ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ sudo su
рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛ рдФрд░ рдпрд╣ sudo: unable to resolve host ingest0: Connection timed out
рддреНрд░реБрдЯрд┐ рдХрд░реЗрдЧрд╛ред
рдореИрдВрдиреЗ рд╣реЛрд╕реНрдЯрдирд╛рдо рдХреЛ /etc/hosts
рдЬреЛрдбрд╝рд╛ рдФрд░ рд╕рдорд╕реНрдпрд╛ рджреВрд░ рд╣реЛ рдЧрдИ - рдореИрдВ рдкреНрд▓реЗрдмреБрдХ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рд╕рдордп рдмрдврд╝рдиреЗ рдкрд░ рдФрд░ рдореИрдВ рддреБрд░рдВрдд sudo su
рд╕рдХрддрд╛ рд╣реВрдВред
root<strong i="11">@ingest0</strong>:~# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 ingest0
рдореИрдВ ansible 2.4.3.0
рдФрд░ python 2.7.12
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореЗрд░реЗ рдореБрджреНрджреЗ рдХреЛ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреА рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдмрджрд▓рдХрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
[sandbox]
fedora<strong i="6">@ip</strong>
рд╕реЗрд╡рд╛
[sandbox]
ip
рдЬрд╣рд╛рдБ IP рдорд╢реАрди рдХрд╛ IP рдкрддрд╛ рд╣реИред
рдпрд╣ рдмрдВрдж рдХреНрдпреЛрдВ рд╣реИ?
рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрдВрд╕рд┐рдмрд▓ рдФрд░ рдкрд╛рдпрдерди рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдЙрдмрдВрдЯреВ рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдмрдЧ рдЕрднреА рднреА рд╣реИред
рдХреЛрдИ рднреА рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдмрдВрдж рдХреНрдпреЛрдВ рд╣реИ?
рд╢рд╛рдпрдж рдХреНрдпреЛрдВрдХрд┐ рд╕рдорд╛рдзрд╛рди (рдУрдВ) рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдкреВрдЫрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рд╕рдВрдпреЛрдЧ рд╕реЗ рддреНрд░реБрдЯрд┐ рдХреЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░рдг рд╣реИрдВред рд╡реНрдпрдХреНрддрд┐ рдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрдгрдп рдХреЙрд▓ рдХрд┐рдпрд╛ред
рдореИрдВ рд╕рд╣рдордд рд╣реВрдБ,
рдореИрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ sudoers рдЬрдбрд╝ рджрд┐рдпрд╛ рд╣реИ .... рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рд╣реИред
рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рддреНрд░реБрдЯрд┐ред рд╢рд╛рдпрдж рдмреЗрд╣рддрд░ рдЕрдкрд╡рд╛рдж рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
рдореЗрд░реА рдкреНрд▓реЗрдмреБрдХ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:
- рдореЗрдЬрдмрд╛рди: рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ
рдмрди_рд╕рд╛рд░: рдЬреЗрдирдХрд┐рдВрд╕
рдЗрдХрдЯреНрдард╛_рдлреИрдХреНрдЯреНрд╕: рд╕рдЪ рд╣реИ
рднреВрдорд┐рдХрд╛рдУрдВ:
- {рднреВрдорд┐рдХрд╛: рдирдВрдЧреЗ, рдЯреИрдЧ: рд╕реНрдерд╛рдиреАрдп}
рдпрдЬрдорд╛рди: рджреЗрд╡-рд╕рдореВрд╣
Remote_user: рд╕реЗрдВрдЯреЛ
рдЗрдХрдЯреНрдард╛_рдлреИрдХреНрдЯреНрд╕: рд╕рдЪ рд╣реИ
рднреВрдорд┐рдХрд╛рдУрдВ:
- {рднреВрдорд┐рдХрд╛: рдирдВрдЧреЗ, рдЯреИрдЧ: рдЧреНрд░рд╛рд╣рдХ}
рдореЗрдЬрдмрд╛рди: рдмреИрдХрдЕрдк
Remote_user: рд╕реЗрдВрдЯреЛ
рдмрди_рд╕рд░: рдЬрдбрд╝
рдЗрдХрдЯреНрдард╛_рдлреИрдХреНрдЯреНрд╕: рд╕рдЪ рд╣реИ
рднреВрдорд┐рдХрд╛рдУрдВ:
- {рднреВрдорд┐рдХрд╛: рдирдВрдЧреЗ, рдЯреИрдЧ: рд╕рд░реНрд╡рд░}
рдЕрдиреНрдп рд╕рднреА рд╣реЛрд╕реНрдЯ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдореЗрдЬрдмрд╛рди: рдмреИрдХрдЕрдкред
-vvv рд╢реЛ
рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓ /usr/lib/python2.7/site-packages/ansible/modules/system/setup.py рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрдирд╛ рдПрд╕рдПрд╕рдПрдЪ рдХрдиреЗрдХреНрд╢рди: рд╕реЗрдВрдЯреЛ SSH: EXEC ssh -o ControlMaster = auto -o ControlPersist = 30m -o ConnectionAttempts = 100 -o UserKnownHostsFile = / dev / null -o StrictHostKostChecking = no -o 'IdentityFile = "/ var / jenkins_home/-shsh-shsh рдбреЗрдореЛ рдбреЗрдореЛред '-o KbdInteractiveAuthentication = no -o PreferredAuthentication = gssapi-with-mic, gssapi-keyex, hostbased, publickey -o PasswordAuthentication = no -o User = centos -o ConnectTimeout = 10 -o ControlPath = / var / jenkins_hkinsред cp / cd7d91cc23 backup.infra.com '/ bin / sh -c' '' '' sudo -H -S -n -u root / bin / sh -c '' '' '' '' '' '' '' '' '' ''ред '' 'рдЗрдХреЛ BECOME-SUCCESS-uywjmsrvdxhojzxfiqjygdwdsmbvvfzn; / usr / bin / python '' '' '' '' '' '' '' '' '' '' '' рдФрд░ 'рдиреАрдВрдж 0' '' '' ''
рдЧрдВрднреАрд░ AWS рдореЗрдВ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реЗ ansible рдХрдорд╛рдВрдб рд╣реИ
ansible-playbook -vvv -i рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА / рд╣реЛрд╕реНрдЯреНрд╕ bareos.yml --key-file "~ .ssh / Demo.pem" -b -e
рдореБрдЭреЗ рдмрд╕ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ become рдпрд╣ рд╕рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдореЙрдбрд▓ рдХреЙрдкреА рдмрди рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрдм рдореИрдВ рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯ рд░рди рдкреНрд▓реЗрдмреБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдареАрдХ рд╣реИред
SSH: EXEC sshpass -d13 ssh -C -o ControlMaster = auto -o ControlPersist = 60s -o StrictHostKeyChecking = no -o User = vmuser -o ConnectTime_ = 20 -o ControlPath = / root / .ansible / cp / 48d4a08c2 -fff -f 19f .202.105 '/ рдмрд┐рди / рд╢-рд╕реА' '' '' рд╕реБ рдЬрдбрд╝ -c '' '' '' '' '' '' '' '' '' '' '' / '' рдмрд┐рди '' '' '' '' '' '' '' '' ''ред " '"' " '"' " '"' " '"' " '"' " '"' " '"' " '"' " '"' " '"' " '"' рдЧреВрдВрдЬ рдмрди-рд╕рдлрд▓рддрд╛-fkekucjxphrobughycoiecflsoiptmkg ; / usr / bin / python /home/vmuser/.ansible/tmp/ansible-tmp-1536311364.58-18648023230053/file.py '"" "" "" "" "" "" "' '' '' '' '' '' ' " '"' " '"' " '"' " '"' " '"' " '"' " '"' " ''" ' "'" ' "'" ' "'" ' "' && рдиреАрдВрдж 0 ' "'" ''
рдШрд╛рддрдХ: [192.168.202.105]: рд╡рд┐рдлрд▓! => {
"рд╕рдВрджреЗрд╢": "рдЯрд╛рдЗрдордЖрдЙрдЯ (22s) рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ:"
рдореИрдВ рд╕рд╣рдордд рд╣реВрдБ,
рдореИрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ sudoers рдЬрдбрд╝ рджрд┐рдпрд╛ рд╣реИ .... рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рд╣реИред
рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рддреНрд░реБрдЯрд┐ред рд╢рд╛рдпрдж рдмреЗрд╣рддрд░ рдЕрдкрд╡рд╛рдж рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
рдореЗрд░реА рдкреНрд▓реЗрдмреБрдХ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:
- рдореЗрдЬрдмрд╛рди: рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ
рдмрди_рд╕рд╛рд░: рдЬреЗрдирдХрд┐рдВрд╕
рдЗрдХрдЯреНрдард╛_рдлреИрдХреНрдЯреНрд╕: рд╕рдЪ рд╣реИ
рднреВрдорд┐рдХрд╛рдУрдВ:
- {рднреВрдорд┐рдХрд╛: рдирдВрдЧреЗ, рдЯреИрдЧ: рд╕реНрдерд╛рдиреАрдп}
рдпрдЬрдорд╛рди: рджреЗрд╡-рд╕рдореВрд╣
Remote_user: рд╕реЗрдВрдЯреЛ
рдЗрдХрдЯреНрдард╛_рдлреИрдХреНрдЯреНрд╕: рд╕рдЪ рд╣реИ
рднреВрдорд┐рдХрд╛рдУрдВ:
- {рднреВрдорд┐рдХрд╛: рдирдВрдЧреЗ, рдЯреИрдЧ: рдЧреНрд░рд╛рд╣рдХ}
рдореЗрдЬрдмрд╛рди: рдмреИрдХрдЕрдк
Remote_user: рд╕реЗрдВрдЯреЛ
рдмрди_рд╕рд░: рдЬрдбрд╝
рдЗрдХрдЯреНрдард╛_рдлреИрдХреНрдЯреНрд╕: рд╕рдЪ рд╣реИ
рднреВрдорд┐рдХрд╛рдУрдВ:
- {рднреВрдорд┐рдХрд╛: рдирдВрдЧреЗ, рдЯреИрдЧ: рд╕рд░реНрд╡рд░}
рдЕрдиреНрдп рд╕рднреА рд╣реЛрд╕реНрдЯ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдореЗрдЬрдмрд╛рди: рдмреИрдХрдЕрдкред
-vvv рд╢реЛ
рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓ /usr/lib/python2.7/site-packages/ansible/modules/system/setup.py рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрдирд╛ рдПрд╕рдПрд╕рдПрдЪ рдХрдиреЗрдХреНрд╢рди: рд╕реЗрдВрдЯреЛ SSH: EXEC ssh -o ControlMaster = auto -o ControlPersist = 30m -o ConnectionAttempts = 100 -o UserKnownHostsFile = / dev / null -o StrictHostKostChecking = no -o 'IdentityFile = "/ var / jenkins_home/-shsh-shsh рдбреЗрдореЛ рдбреЗрдореЛред '-o KbdInteractiveAuthentication = no -o PreferredAuthentication = gssapi-with-mic, gssapi-keyex, hostbased, publickey -o PasswordAuthentication = no -o User = centos -o ConnectTimeout = 10 -o ControlPath = / var / jenkins_hkinsред cp / cd7d91cc23 backup.infra.com '/ bin / sh -c' '' '' sudo -H -S -n -u root / bin / sh -c '' '' '' '' '' '' '' '' '' ''ред '' 'рдЗрдХреЛ BECOME-SUCCESS-uywjmsrvdxhojzxfiqjygdwdsmbvvfzn; / usr / bin / python '' '' '' '' '' '' '' '' '' '' '' рдФрд░ 'рдиреАрдВрдж 0' '' '' '' рдЧрдВрднреАрд░ AWS рдореЗрдВ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реЗ ansible рдХрдорд╛рдВрдб рд╣реИansible-playbook -vvv -i рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА / рд╣реЛрд╕реНрдЯреНрд╕ bareos.yml --key-file "~ .ssh / Demo.pem" -b -e
>
рдореЗрд░рд╛ рдореБрджреНрджрд╛ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рд╕рдВрдмрдВрдзрд┐рдд рдерд╛ред рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╣рд▓ рд╣реИред
рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдЦрд░рд╛рдм рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдХрд╛рд░рдг рдерд╛ред
рдореБрдЭреЗ рдпрд╣ рдореБрджреНрджрд╛ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ:
рдкреНрд▓реЗрдмреБрдХ:
- name: Configure cassandra.yaml common settings
become: yes
become_user: cassandra
become_method: su
become_flags: '-s /bin/sh'
lineinfile:
path: /usr/local/cassandra/conf/cassandra.yaml
regexp: '{{ item.beginning }}'
line: '{{ item.beginning }}{{ item.value }}{{ item.end }}'
with_items: "{{ cassandra_yaml }}"
рдЬреЛ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ:
TASK [install-cassandra : Configure cassandra.yaml common settings] *************************************************
fatal: [10.142.0.3]: FAILED! => {"msg": "Timeout (32s) waiting for privilege escalation prompt: "}
рдкреНрд▓реЗрдмреБрдХ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдиреНрдп рдХрд╛рд░реНрдп рд╣реИрдВ рдЬреЛ рдмрд┐рдирд╛ рдореБрджреНрджреЛрдВ рдХреЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдмрд╕ рдпрд╣ "рднрд┐рдиреНрди" рд╡рд┐рдХрд▓реНрдк рдмрди рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред
рдореЗрд░реЗ 3 рд╕реЗрдВрдЯ:
рдЗрд╕реА рддрд░рд╣ рдХрд╛ рдореБрджреНрджрд╛ рдпрд╣рд╛рдБред рд╡рд╣реА рддреНрд░реБрдЯрд┐ред рдореЗрд░реЗ рдкрд╛рд╕ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЬреЛ рджреЗрдЦрд╛:
1) рдпрд╣ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ (рдореЗрд░рд╛ рдХрдиреЗрдХреНрд╢рди HE6 рд╕реБрд░рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Ubunut 18.04-> LXD рдХрдВрдЯрд░ рд╕реЗ рд╣реИ)ред рдКрдкрд░ рдХреЗ рд╕рдорд╛рди рдПрдХ рд╕реБрд░рдВрдЧ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ред рдЕрдиреНрдп рд╕реБрд░рдВрдЧ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдореИрдВ рдпрд╣рд╛рдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рдПрдордЯреАрдпреВ рдореБрджреНрджрд╛ рд╣реИ)ред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдмрд╕ рдПрдХ рдиреЛрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдкреИрд░рд╛рдорд┐рдХреЛ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ рдореБрджреНрджрд╛ рдЪрд▓рд╛ рдЧрдпрд╛ рдФрд░ рдкреНрд▓реЗрдмреБрдХ рдареАрдХ рдЪрд▓рд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдУрдкрдирдПрд╕рдПрд╕рдПрдЪ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд▓рдЧрддрд╛ рд╣реИред
рддреЛ рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ, рдЙрдирдХреЗ рд▓рд┐рдП
-c paramiko
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдЬрдм рддрдХ рдХрд┐ рд╡реЗ рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░рддреЗред