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