【Ansible】Docker로 Ansible 핸즈온
개요
Virtualbox와 Vagrant를 사용한 입문은 장애물이 높아서,
Docker를 사용하여 Ansible로 핸즈 온합니다.
구성
Docker를 사용하여 Ansible의 컨테이너를 1대, Target의 컨테이너를 2대 만든다.
Ansible 컨테이너에서 두 개의 Target 컨테이너에 대해 Ansible 명령을 실행합니다.
Ansible 컨테이너에서 Target01
, Target02
컨테이너 내에 hoge
라는 파일을 작성해 봅니다.
핸즈온
1 . git clone한다.
clone
git clone https://github.com/Naoto92X82V99/docker-ansible.git
디렉토리 구성
.
├── README.md
├── 도커
│ ├── ansible
│ │ └── Dockerfile ansible의 Docerfile
│ └── target
│ └── Dockerfile target의 Dockerfile
├── docker-compose.yml docker-compose 파일
├── inventry.ini hosts 파일
└── playbook.yml playbook 파일
2. 컨테이너를 시작합니다.
컨테이너 시작
docker-compose up -d
Ansible 컨테이너에 연결
Ansible 컨테이너에 연결
docker exec -it ansible /bin/exec
Ansible 컨테이너로부터, target01 , target02 컨테이너에, ssh 접속한다.
ssh 연결 확인
ssh target01 # yes로 연결
이탈
ssh target02 # yes로 연결
이탈
6. target01, target02 컨테이너에 대해 ansible 명령을 실행합니다.
ansible-playbook -i inventry.ini playbook.yml
Ansible 명령 실행 결과
PLAY [target] *************************************************** ************************************************** ************************************************** ******************
TASK [Gathering Facts] ************************************************** ************************************************** ************************************************** **********
ok: [target01]
ok: [target02]
TASK [???] ************************************************* ************************************************** ************************************************** ***********************
[WARNING]: Consider using the file module with state=touch rather than running touch. If you need to use command because file is insufficient you can add warn=False to this
command task or set command_warnings=False in ansible.cfg to get rid of this message.
changed: [target02]
changed: [target01]
PLAY RECAP ***************************************************** ************************************************** ************************************************** *******************
target01 : ok=2 changed=1 unreachable=0 failed=0
target02 : ok=2 changed=1 unreachable=0 failed=0
7. target01, target02 컨테이너에 다시 연결하여 hoge가 생성되었는지 확인합니다.
Ansible 명령의 동작 확인
ssh target01
ls #hoge
이탈
ssh target02
ls #hoge
해설
본질과 벗어나기 때문에 Docker에 대해서는 설명하지 않습니다.
Ansible의 기본 파일은 hosts 파일과 playbook입니다.
hosts 파일
hosts 파일은 Ansible 명령을 실행하는 대상 서버를 설명합니다.
이번은, target01 , target02 컨테이너를 대상으로 하기 위해(때문에), 다음과 같이 됩니다.
hosts
[target]
target01
target02
playbook 파일
playbook 파일은 서버의 상태를 정의합니다.
이번에는, hosts 파일에 기재된 target 에 대해서, touch hoge 를 실행합니다.
playbook.yml
- hosts: target
tasks:
- name: "테스트"
쉘: |
touch hoge
요약
Docker를 사용하여 Ansible에 핸즈 온하는 방법을 썼습니다.
playbook 파일을 작성하고 Ansible 명령을 실행하는 환경은
docker-compose up에서만 가능합니다.
핸즈온에서 사용한 touch 명령은 균등성이 담보되지 않으므로 실제로 사용하지 마십시오.
핸즈온 후에는 playbook.yml을 편집하고 Ansible 명령을 사용해보십시오.
실수 · 지적 등이 있으면 코멘트 부탁드립니다.
Reference
이 문제에 관하여(【Ansible】Docker로 Ansible 핸즈온), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Naoto9282/items/39eeefa5de652b857372
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Docker를 사용하여 Ansible의 컨테이너를 1대, Target의 컨테이너를 2대 만든다.
Ansible 컨테이너에서 두 개의 Target 컨테이너에 대해 Ansible 명령을 실행합니다.
Ansible 컨테이너에서
Target01
, Target02
컨테이너 내에 hoge
라는 파일을 작성해 봅니다.핸즈온 1 . git clone한다. clone git clone https://github.com/Naoto92X82V99/docker-ansible.git 디렉토리 구성 . ├── README.md ├── 도커 │ ├── ansible │ │ └── Dockerfile ansible의 Docerfile │ └── target │ └── Dockerfile target의 Dockerfile ├── docker-compose.yml docker-compose 파일 ├── inventry.ini hosts 파일 └── playbook.yml playbook 파일 2. 컨테이너를 시작합니다. 컨테이너 시작 docker-compose up -d Ansible 컨테이너에 연결 Ansible 컨테이너에 연결 docker exec -it ansible /bin/exec Ansible 컨테이너로부터, target01 , target02 컨테이너에, ssh 접속한다. ssh 연결 확인 ssh target01 # yes로 연결 이탈 ssh target02 # yes로 연결 이탈 6. target01, target02 컨테이너에 대해 ansible 명령을 실행합니다. ansible-playbook -i inventry.ini playbook.yml Ansible 명령 실행 결과 PLAY [target] *************************************************** ************************************************** ************************************************** ****************** TASK [Gathering Facts] ************************************************** ************************************************** ************************************************** ********** ok: [target01] ok: [target02] TASK [???] ************************************************* ************************************************** ************************************************** *********************** [WARNING]: Consider using the file module with state=touch rather than running touch. If you need to use command because file is insufficient you can add warn=False to this command task or set command_warnings=False in ansible.cfg to get rid of this message. changed: [target02] changed: [target01] PLAY RECAP ***************************************************** ************************************************** ************************************************** ******************* target01 : ok=2 changed=1 unreachable=0 failed=0 target02 : ok=2 changed=1 unreachable=0 failed=0 7. target01, target02 컨테이너에 다시 연결하여 hoge가 생성되었는지 확인합니다. Ansible 명령의 동작 확인 ssh target01 ls #hoge 이탈 ssh target02 ls #hoge 해설 본질과 벗어나기 때문에 Docker에 대해서는 설명하지 않습니다. Ansible의 기본 파일은 hosts 파일과 playbook입니다. hosts 파일 hosts 파일은 Ansible 명령을 실행하는 대상 서버를 설명합니다. 이번은, target01 , target02 컨테이너를 대상으로 하기 위해(때문에), 다음과 같이 됩니다. hosts [target] target01 target02 playbook 파일 playbook 파일은 서버의 상태를 정의합니다. 이번에는, hosts 파일에 기재된 target 에 대해서, touch hoge 를 실행합니다. playbook.yml - hosts: target tasks: - name: "테스트" 쉘: | touch hoge 요약 Docker를 사용하여 Ansible에 핸즈 온하는 방법을 썼습니다. playbook 파일을 작성하고 Ansible 명령을 실행하는 환경은 docker-compose up에서만 가능합니다. 핸즈온에서 사용한 touch 명령은 균등성이 담보되지 않으므로 실제로 사용하지 마십시오. 핸즈온 후에는 playbook.yml을 편집하고 Ansible 명령을 사용해보십시오. 실수 · 지적 등이 있으면 코멘트 부탁드립니다.
Reference
이 문제에 관하여(【Ansible】Docker로 Ansible 핸즈온), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Naoto9282/items/39eeefa5de652b857372텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)