본문 바로가기
인프라/앤서블(Ansible)

[ANSIBLE] 앤서블 업그레이드 및 윈도우 모듈 동작 방법

by IT맥구리나스 2025. 3. 4.

개요

- 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.

반응형

댓글