amazonlinux2 컨테이너에서 Ansible systemd 모듈이 오류가 발생하기 때문에 service에서 피하는 단계
3600 단어 Ansible
amazonlinux:2 의 컨테이너에서 Ansible의 systemd 모듈이 에러가 되므로 service로 회피하는 순서입니다.구체적으로는 다음과 같은 작업을 수행했는데,
- name: start jenkins
systemd:
name: jenkins
state: started
다음과 같은 오류가 발생했습니다.
TASK [start jenkins] ************************************************** ************************************************** ************************
fatal: [localhost]: FAILED! => {"changed": false, "cmd": "/usr/bin/systemctl", "msg": "Failed to get D-Bus connection: Operation not permitted", "rc ": 1, "stderr": "Failed to get D-Bus connection: Operation not permitted\n", "stderr_lines": ["Failed to get D-Bus connection: Operation not permitted"], "stdout": "", "stdout_lines": []}
대책
systemd가 아니라 서비스를 사용합니다.
service를 사용하려면
initscripts를 설치하십시오.- name: Install yum packages
yum:
name:
- initscripts
- name: start jenkins
service:
name: jenkins
state: started
덤: VSC에서 amazonlinux2 이미지에서 Ansible을 테스트 할 수있게하기까지의 단계
왜 이런 일을 했는가 하면 VSC (Visual Studio Code)의 Ansible Extention을 사용하면
수중에서 Docker를 이용하면서 바삭바삭과 Ansible을 움직이면서 쓸 수 있기 때문입니다.
구체적으로는 다음과 같은 dockerfile을 씁니다. (배포라든지 하지 않기 때문에 작게 하는 노력을 포기하고 있습니다)
FROM amazonlinux:2
RUN yum -y install python-pip && pip install ansible
로컬 용으로 build합니다. 태그 이름은 선택 사항입니다.
bash
docker build -t localhost/amazonlinux2-ansible .
VSC를 시작하고 Ansible Extention을 넣습니다.

Extention의 오른쪽 하단에 있는 기어(Setting)를 클릭하여 Extention 설정 메뉴를 엽니다.
검색 화면에
docker를 입력하면 Custom docker image when running playbook in Docker.의 항목이 나오므로 자신이 만든 컨테이너 이미지의 태그 이름을 설정합니다. 특히 보존하는 버튼등은 없고, 즉 반영이었습니다.
이 후에는 playbook을 더블 탭(오른쪽 클릭)하고
Run Ansible Playbook in Docker 를 실행하면 위에서 언급한 컨테이너 이미지를 이용하여 Playbook 실행이 시작됩니다.
Reference
이 문제에 관하여(amazonlinux2 컨테이너에서 Ansible systemd 모듈이 오류가 발생하기 때문에 service에서 피하는 단계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Morihaya/items/e59e2879bf5eaa724c21텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)