개요
- ANSIBLE 업그레이드를 할 수 있다.
- 명령을 받는 에이전트가 UBUNTU 24.04일 경우 구버전에서는 파이썬 버전 이슈로 플레이북 동작이 안됨
세부내용
- 윈도우 모듈의 경우 ansible-galaxy를 통해 별도로 설치해야하며, jenkins에서 동작하기 위해서
별도의 공간에 다운로드 및 설치 후 ansible.cfg에 경로지정을 해야한다.
# 기존버전 확인
$ ansible --version
ansible 2.10.8
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 3.10.12 (main, Sep 11 2024, 15:47:36) [GCC 11.4.0]
apt remove ansible
# 기존 버전 삭제
apt autoremovepip install --upgrade pip
# pip를 통한 버전 설치
pip install ansible-core==2.14.15
#galaxy를 통한 윈도우 설치
ansible-galaxy collection install ansible.windows -p /data/ansible/collections
chown -R jenkins.jenkins /data/ansible/collections
# /etc/ansible/ansible.cfg 설정 추가
collections_paths = /data/ansible/collections
collections_on_ansible_version_mismatch = ignore
# 업그레이드 확인
root@VM-16-5-ubuntu:/data/ansible# ansible --version
ansible [core 2.14.15]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.10/dist-packages/ansible
ansible collection location = /data/ansible/collections
executable location = /usr/local/bin/ansible
python version = 3.10.12 (main, Feb 4 2025, 14:57:36) [GCC 11.4.0] (/usr/bin/python3)
jinja version = 3.1.5
libyaml = True
구버전 ansible에서 ubuntu24.04 서버에 명령을 내릴 경우 아래와 같은 에러출력
fatal: [test-test]: FAILED! => {"ansible_facts": {}, "changed": false, "failed_modules": {"ansible.legacy.setup": {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"}, "exception": "Traceback (most recent call last):\n File \"<stdin>\", line 102, in <module>\n File \"<stdin>\", line 94, in _ansiballz_main\n File \"<stdin>\", line 37, in invoke_module\n File \"/tmp/ansible_ansible.legacy.setup_payload_hg7m_h5g/ansible_ansible.legacy.setup_payload.zip/ansible/module_utils/basic.py\", line 176, in <module>\nModuleNotFoundError: No module named 'ansible.module_utils.six.moves'\n", "failed": true, "module_stderr": "Traceback (most recent call last):\n File \"<stdin>\", line 102, in <module>\n File \"<stdin>\", line 94, in _ansiballz_main\n File \"<stdin>\", line 37, in invoke_module\n File \"/tmp/ansible_ansible.legacy.setup_payload_hg7m_h5g/ansible_ansible.legacy.setup_payload.zip/ansible/module_utils/basic.py\", line 176, in <module>\nModuleNotFoundError: No module named 'ansible.module_utils.six.moves'\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}}, "msg": "The following modules failed to execute: ansible.legacy.setup\n"}
업그레이드 후 윈도우서버에 명령을 내리면 아래와 같은 에러를 출력함
ERROR! couldn't resolve module/action 'win_ping'. This often indicates a misspelling, missing collection, or incorrect module path.
댓글