앞에서 playbook을 사용하는 것을 살짝 맛봤는데,

이번에는 조금 더 진보된 playbook을 작성해서 사용해보자.





1. 새로운 playbook 작성


    - "apt-get upgrade"를 실행시키기 위한 playbook이다.


$ nano ./apt-upgrade.yml


- hosts: all

  tasks:

    - name: Update and upgrade apt packages

      become: true

      apt:

        upgrade: yes

        update_cache: yes

        cache_valid_time: 86400 #One day




2. 설명....


    - hosts: all → hosts 파일에 등록된 모든 아이들에게 실행하라는 의미

    - tasks → 해야할 일을 적겠다라는 의미

    - name → 해야할 일을 설명? 하기 위해서 적어주는 내용

    - become: true → sudo 권한으로 일을 하겠다라는 의미

    - apt: → apt와 관련된 모듈을 사용하겠다라는 의미

    - upgrade: yes → "apt-get upgrade" 명령과 같은 의미

    - update_cache ... cache_valid_time → "apt-get update"를 실행하는데, 하루 이내라면 생략~




3. apt 모듈과 관련되어서 더 알고 싶다면 아래 링크 참조


    - http://docs.ansible.com/ansible/apt_module.html




4. 그러면 일단 실행 !!!


$ ansible-playbook ./apt-upgrade.yml 


PLAY [all] *************************************************************************************


TASK [Gathering Facts] ***********************************************************************

ok: [192.168.100.105]


TASK [Update and upgrade apt packages] **************************************************

fatal: [192.168.100.105]: FAILED! => {"changed": false, "failed": true, "msg": "Could not find aptitude. Please ensure it is installed."}

to retry, use: --limit @/srv/workspace/ansible/apt-upgrade.retry


PLAY RECAP **********************************************************************************

192.168.100.105            : ok=1    changed=0    unreachable=0    failed=1


    - 어?! 에러가 발생했다. "Could not find aptitude. Please ensure it is installed."





5. aptitude가 필요한 노예 !!!


    - 주인의 말을 제대로 알아듣기 위해서는 노예(slave)에게 aptitude 패키지를 설치해줘야 한다.


$ sudo apt-get install


    - 아니면 이마저도 ansible을 통해 설치해볼 수도 있다.



$ nano ./install-aptitude.yml


- hosts: all

  tasks:

    - name: install aptitude

      raw: sudo apt-get -y install aptitude


$ ansible-playbook ./install-aptitude.yml 


PLAY [all] *************************************************************************************


TASK [Gathering Facts] ***********************************************************************

ok: [192.168.100.105]


TASK [install aptitude] ************************************************************************

changed: [192.168.100.105]


PLAY RECAP **********************************************************************************

192.168.100.105            : ok=2    changed=1    unreachable=0    failed=0   





6. 이제 다시 실행해보자.


$ ansible-playbook ./apt-upgrade.yml 


PLAY [all] *************************************************************************************


TASK [Gathering Facts] ***********************************************************************

ok: [192.168.100.105]


TASK [Update and upgrade apt packages] **************************************************

ok: [192.168.100.105]


PLAY RECAP **********************************************************************************

192.168.100.105            : ok=2    changed=0    unreachable=0    failed=0  




이제서야 ansible 에 대해서 조금 감이 온다!

여러분도???? ^^



이제 실무에 사용하기 위해서 필요한 것들이 뭔가 더 없을지 알아봐야겠다.



반응형

+ Recent posts