๊ฐ๋ฅ -m ping -u ์ฐ๋ถํฌ us-west-2a
35.166.197.222 | ์คํจํ! => {
"๋ณ๊ฒฝ๋": ๊ฑฐ์ง,
"์คํจ": ์ฌ์ค,
"module_stderr": "35.166.197.222์ ๋ํ ๊ณต์ ์ฐ๊ฒฐ์ด ๋ซํ์ต๋๋ค.\r\n",
"module_stdout": "/bin/sh: 1: /usr/bin/python: ์ฐพ์ ์ ์์\r\n",
"msg": "๋ชจ๋ ์ค๋ฅ"
}
๋ฌธ์ ํ ํ๋ฆฟ์ ์ญ์ ํ๋ ๋์ ์ฌ์ฉํ์ญ์์ค. ์ด๊ฒ์ ์คํ ๊ฐ๋ฅํ๊ฑฐ๋ ์ ์ฉํ ๋ฒ๊ทธ ๋ณด๊ณ ์๊ฐ ์๋๋๋ค. ๊ธฐ๋ณธ python3์ด ์ค์น๋์ง ์์ ์ํ์์ Ubuntu 16+ ๋๋ ๋ค๋ฅธ ๊ฒ์ ์คํํ๊ณ ์๋ค๊ณ ์๊ฐํ์ง๋ง ์ ์ฒด ๋ฒ๊ทธ ๋ณด๊ณ ์ ์์ด๋ ์ ์ ์์ต๋๋ค.
AWS์ ์ต์ ์ด๋ฏธ์ง์๋ ์ฌ์ฉ ๊ฐ๋ฅํ Python์ด ์ค์น๋์ด ์์ง ์์ต๋๋ค... ์ด๊ฒ์ ์ฌ์ ์์ ์ผ๋ก ์ถ๊ฐํด์ผ ํฉ๋๋ค.
pre_tasks:
- name: Refresh apt cache
become: no
local_action: shell ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ConnectTimeout=5 {{ inventory_hostname }} sudo apt-get update
- name: Install Python-apt to pull in Python
become: no
local_action: shell ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ConnectTimeout=5 {{ inventory_hostname }} sudo apt-get install --no-install-recommends --assume-yes python-apt
AMI๊ฐ Ansible๊ณผ ์ ์๋ํ๋๋ก ํ๋ ค๋ฉด ๋ด ์์ ์์ ์ด๊ฒ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
Ubuntu Xenial์๋ ๊ธฐ๋ณธ์ ์ผ๋ก Python3์ด ์ค์น๋์ด ์์ผ๋ฉฐ /usr/bin/python3
์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค(ํ์คํ์ง๋ ์์ง๋ง).
์ด ๋ต๋ณ์ ์ฐธ์กฐํ์ญ์์ค. http://stackoverflow.com/questions/32429259/ansible-fails-with-bin-sh-1-usr-bin-python-not-found
์ด๊ธฐํ ์์ ์ ์ํด ํฉํธ ์์ง์ ๋นํ์ฑํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์, ํ์ด์ฌ ์ธํฐํ๋ฆฌํฐ์ ๊ฒฝ๋ก๋ ๋ฐํ์์ ๋ค์๊ณผ ๊ฐ์ด ์ฃผ์ด์ง ์ ์์ต๋๋ค.
-e 'ansible_python_interpreter=/usr/local/bin/python' ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ๋์.
๊ทธ๋ฌ๋ ํ์ด์ฌ ์ธํฐํ๋ฆฌํฐ ๊ฒฝ๋ก๋ฅผ ์ธ๊ธํ ์ ์๋ ๊ฐ๋ฅํ ๊ตฌ์ฑ ํ์ผ์ ์ด๋ค ๋ฐฉ๋ฒ์ด ์์ด์ผ ํฉ๋๋ค. ์๋๋ฉด ๊ฑฐ๊ธฐ์ ์์ต๋๊น?
์์ผ๋ฉด ๊ตฌํํด์ผ ํฉ๋๋ค.
์ธ๋ฒคํ ๋ฆฌ ํ์ผ์์ ansible_python_interpreter=/usr/bin/python3
๋ฅผ ์ฌ์ฉํ์ธ์.
@guruprasad85 ์ด ๋ฌธ์ ๋ ๊ทํ์ ์๋ต์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ์๋ตํ์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ์ข ๋ฃ๋ฉ๋๋ค.
@guruprasad85 ์๋ ํ์ธ์! ์๊ฐ์ ๋ด์ด ์ด ๋ฌธ์ ๋ฅผ ์ด์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ปค๋ฎค๋ํฐ์์ ๊ทํ์ ๋ฌธ์ ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ค๋ฉด ์กฐ๊ธ ๋ ๋ง์ ์ ๋ณด๊ฐ ํ์ํฉ๋๋ค.
์ค๋ช ์์ ์ฐพ์ ์ ์๋ ํญ๋ชฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด ํ
ํ๋ฆฟ์ผ๋ก ์ด ๋ฌธ์ ์ ๋ํ ์ค๋ช
์ ์ค์ ํ์ธ์.
https://raw.githubusercontent.com/ansible/ansible/devel/.github/ISSUE_TEMPLATE.md
python2๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ์ฒซ ๋ฒ์งธ ์์ ์ผ๋ก ์ถ๊ฐํ์ต๋๋ค.
- name: dependency provisioning
hosts: all
become: yes
become_method: sudo
gather_facts: false
tasks:
- name: install python2
raw: sudo apt-get -y install python-simplejson
๋ ๋ง์ ์ ๋ณด๋ ์ฌ๊ธฐ
@guruprasad85 ์ด ๋ฌธ์ ๋ ๊ทํ์ ์๋ต์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ์๋ตํ์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ์ข ๋ฃ๋ฉ๋๋ค.
์์ ์ค๋ช ์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ์ ์ถฉ๋ถํฉ๋๋ค.
๋ช ๊ฐ์ง ์ถ๊ฐ ์ฝ๊ธฐ:
http://docs.ansible.com/ansible/faq.html#how -do-i-handle-python-pathing-not-have-a-python-2-x-in-usr-bin-python-on- ์๊ฒฉ ๊ธฐ๊ณ
์ถ๊ฐ ์ง๋ฌธ์ด ์๋ ๊ฒฝ์ฐ IRC ๋๋ ๋ฉ์ผ๋ง ๋ฆฌ์คํธ์ ๋ฐฉ๋ฌธํ์ญ์์ค.
_Gathering Facts_๋ฅผ ๋นํ์ฑํํ ์๋ ์์ต๋๋ค. ์ด๊ฒ์ ์ฑ ์ ๋ฃ์ผ์ญ์์ค.
- hosts: anything
gather_facts: False
@bcoca @sivel ์ฌ๋ฐฉ๋ฌธ ๊ณํ์ ์๋์? /usr/bin/python
๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ Ansible์ด ์ต์ํ /usr/bin/python3
(๋๋ ์ ์ ํ ๊ฒฝ์ฐ /usr/bin/python
/usr/bin/python2
)๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ์๋ํด์ผ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
@SpamapS ๋ AWS์ ๊ณต์ Ubuntu AMI๊ฐ /usr/bin/python3
์ ํจ๊ป ์ ๊ณต ๋๋ค๊ณ ๋ณด๊ณ ํ์ต๋๋ค.
ubuntu@ip-172-16-178-247:~$ uname -a
Linux ip-172-16-178-247 4.4.0-1065-aws #75-Ubuntu SMP Fri Aug 10 11:14:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
ubuntu@ip-172-16-178-247:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.5 LTS
Release: 16.04
Codename: xenial
ubuntu@ip-172-16-178-247:~$ ls -al /usr/bin |grep python
lrwxrwxrwx 1 root root 26 May 18 2016 dh_pypy -> ../share/dh-python/dh_pypy
lrwxrwxrwx 1 root root 29 May 18 2016 dh_python3 -> ../share/dh-python/dh_python3
lrwxrwxrwx 1 root root 23 Nov 28 2017 pdb3.5 -> ../lib/python3.5/pdb.py
lrwxrwxrwx 1 root root 31 Mar 23 2016 py3versions -> ../share/python3/py3versions.py
lrwxrwxrwx 1 root root 26 May 18 2016 pybuild -> ../share/dh-python/pybuild
lrwxrwxrwx 1 root root 9 Mar 23 2016 python3 -> python3.5
-rwxr-xr-x 2 root root 4464400 Nov 28 2017 python3.5
-rwxr-xr-x 2 root root 4464400 Nov 28 2017 python3.5m
-rwxr-xr-x 1 root root 976 Nov 27 2015 python3-jsondiff
-rwxr-xr-x 1 root root 3662 Nov 27 2015 python3-jsonpatch
-rwxr-xr-x 1 root root 1342 Oct 24 2015 python3-jsonpointer
lrwxrwxrwx 1 root root 10 Mar 23 2016 python3m -> python3.5m
ํ๋๋ฅผ ์ํด ์ด๊ฒ์ Ansible์ ์๋ ค์ง ๊ฐ์ ๊ธฐํ์ด๋ฉฐ >=2.8์ ๋ํ ๋ก๋๋งต์ ํฌํจํ๊ธฐ ์ํด ๊ณ ๋ ค ์ค์ ๋๋ค.
๋ด ๊ฒฝ์ฐ์๋(ansible 2.7.0):
๋ง์ด์์ดํผ | ์คํจํ! => {
"๋ณ๊ฒฝ๋": ๊ฑฐ์ง,
"module_stderr": "",
"module_stdout": "/bin/sh: /usr/bin/python: ํด๋น ํ์ผ์ด๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์์ต๋๋ค\r\n",
"msg": "MODULE FAILURE\n์ ํํ ์ค๋ฅ๋ stdout/stderr์ ์ฐธ์กฐํ์ญ์์ค.",
"rc": 127
}
$ll |grep ํ์ด์ฌ
lrwxrwxrwx 1 ๋ฃจํธ ๋ฃจํธ 32 6์ 5์ผ 15:44 kylinpy -> /usr/local/python2.7/bin/kylinpy
lrwxrwxrwx 1 ๋ฃจํธ ๋ฃจํธ 2016๋
11์ 16์ผ python -> /usr/local/python2.7/bin/python2.7
lrwxrwxrwx 1 ๋ฃจํธ ๋ฃจํธ 2016๋
9์ 8์ผ python2 -> python
-rwxr-xr-x 1 ๋ฃจํธ ๋ฃจํธ 4864 2014๋
5์ 29์ผ python2.6
-rwxr-xr-x 1 ๋ฃจํธ ๋ฃจํธ 1418 2014๋
5์ 29์ผ python2.6-config
์ํํธ๋งํฌ๋ ์๋ํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋ด ๊ฒฝ์ฐ์๋(ansible 2.7.0):
๋ง์ด์์ดํผ | ์คํจํ! => {
"๋ณ๊ฒฝ๋": ๊ฑฐ์ง,
"module_stderr": "",
"module_stdout": "/bin/sh: /usr/bin/python: ํด๋น ํ์ผ์ด๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์์ต๋๋ค\r\n",
"msg": "MODULE FAILURE\n์ ํํ ์ค๋ฅ๋ stdout/stderr์ ์ฐธ์กฐํ์ญ์์ค.",
"rc": 127
}$ll |grep ํ์ด์ฌ
lrwxrwxrwx 1 ๋ฃจํธ ๋ฃจํธ 32 6์ 5์ผ 15:44 kylinpy -> /usr/local/python2.7/bin/kylinpy
lrwxrwxrwx 1 ๋ฃจํธ ๋ฃจํธ 2016๋ 11์ 16์ผ python -> /usr/local/python2.7/bin/python2.7
lrwxrwxrwx 1 ๋ฃจํธ ๋ฃจํธ 2016๋ 9์ 8์ผ python2 -> python
-rwxr-xr-x 1 ๋ฃจํธ ๋ฃจํธ 4864 2014๋ 5์ 29์ผ python2.6
-rwxr-xr-x 1 ๋ฃจํธ ๋ฃจํธ 1418 2014๋ 5์ 29์ผ python2.6-config์ํํธ๋งํฌ๋ ์๋ํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์ฃ์กํฉ๋๋ค. ์ ์๋ชป์ ๋๋ค.์ํํธ๋งํฌ๋ฅผ ์ฌ์ฉํ์ธ์. ์๋ํฉ๋๋ค.
๋จ์ : ln -s /usr/bin/python3 /usr/bin/python์ด ๋ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
์ธ๋ฒคํ ๋ฆฌ ํ์ผ์์
ansible_python_interpreter=/usr/bin/python3
๋ฅผ ์ฌ์ฉํ์ธ์.
๊ฐ์ฌํฉ๋๋ค. ์ด์ ์๋ํฉ๋๋ค.
์ด๊ฒ์ pyenv pyenv global <version>
๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๊ฒ์ shimํด์ผํ์ง๋ง Ansible์ python
๋ช
๋ น์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ /usr/bin/python
๋ฅผ ๋ณด๋๋ก ํ๋ ์ฝ๋ฉ๋์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๊ฒ์ด ๋ฐ๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๊น? ์๋๋ฉด ์ฌ์ฉํ ์ ์๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
๊ทธ๋ ๋ค๋ฉด ์ด๊ฒ์ด ๋ฐ๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๊น?
์ ํ ๊ทธ๋ ์ง ์๋ค.
/usr/bin/python
์ด์ธ์ ๊ฒ์ ์ฌ์ฉํ๋ ค๋ฉด ansible_python_interpreter
๋ฅผ ํ์ด์ฌ ์ธํฐํ๋ฆฌํฐ์ ๋ช
์์ ์ผ๋ก ์ค์ ํด์ผ ํฉ๋๋ค.
pyenv
๊ฒฝ์ฐ shim( which python3.6
) ๋๋ ์ค์ ๋ฐ์ด๋๋ฆฌ( pyenv which python3.6
)์ ๋ํ ๊ฒฝ๋ก์ผ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ๋ง์ ์ํฉ์์ ํ๋ ์ฝ๋ฉํด์ผ ํ๋ฉฐ ์ ํ์ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ธ๋ฒคํ ๋ฆฌ ํ์ผ์์
ansible_python_interpreter=/usr/bin/python3
๋ฅผ ์ฌ์ฉํ์ธ์.