티스토리 뷰
728x90
반응형
7장 Ansible Galaxy
Ansible playbook을 찾는 방법 ansible-galaxy search 'install git' --platforms el ansible playbook을 다운받기 (-p는 위치를 지정) ansible-galaxy install -r davidkarban.git -p roles/ 다운받은 playbook을 확인 ansible-galaxy list 다운받은 playbook을 삭제 ansible-galaxy remove student.bash_env 새로운 playbook을 만듦 ansible-galaxy init --offline student.example ansible-galaxy init --offline -p roles empty.example |
Requirements 파일에 playbook dependencies을 정의할수 있음(자세한 내용)
예)
- src: http://materials.example.com/roles-library/student.bash_env.tgz name: student.bash_env |
8장 Asynchronous Check
원하는 hosts를 찾는 command 모음
ansible web.example.com -i myinventory --list-hosts ansible '*.example.com' -i myinventory --list-hosts ansible '*' -i myinventory --list-hosts ansible ungrouped -i myinventory --list-hosts ansible '192.168.2.*' -i myinventory --list-hosts ansible labhost1.example.com,test2.example.com,192.168.2.2 -i myinventory --list-hosts ansible lab,datacenter1 -i myinventory --list-hosts ansible 'lab,data*,192.168.2.2' -i myinventory --list-hosts datacenter1 그룹에도 정의 되어 있고 또 lab 그룹에도 같이 정의된 머신들 ansible 'lab,&datacenter1' -i myinventory --list-hosts test2.example.com을 제외한 datacenter안의 모든 머신들 ansible 'datacenter,!test2.example.com' -i myinventory --list-hosts datacenter1 그룹안에 속한 호스트를 제외한 인벤토리 안의 모든 호스트 ansible 'all,!datacenter1' -i myinventory --list-hosts
|
로컬에서 command를 실행하기 위한 방법
local_action ==>>> delegate_to: localhost.
보통 delegate_to를 이용하면 현재 실행하는 host의 facts를 가져오는 데 만약 delegate_to 호스트의 facts를 가져오고 싶다면 아래 명령어를 사용
delegate_facts: True
Thread수늘리기 (매니지하는 호스트의 수가 많으면 Thread를 늘려줘야한다.)
grep forks /etc/ansible/ansible.cfg
#forks = 5
Rolling updates
한번에 정해진 호스트에서만 command가 실행할수 있다. 아래는 한번에 2개의 hosts에서 실행된다.
- name: 한번에 실행가능한 Hosts를 제한 hosts: appservers serial: 2 |
Asynchronous 체크를 하는 여러방법
- 매 10초마다 1시간동안 체크 ( async/poll를 이용함)
- name: 실행시간이 긴 TASK hosts: demoservers remote_user: devops tasks: - name: Download big file get_url: url: http://demo.example.com/bigfile.tar.gz async: 3600 poll: 10 |
Task를 시작하고 나중에 check하는 방식
- wait_for를 사용하는 방식
--- - name: 서버를 재시작 hosts: demoservers remote_user: devops tasks: - name: restart machine shell: sleep 2 && shutdown -r now "Ansible updates triggered" async: 1 poll: 0 become: true ignore_errors: true - name: 서버가 다시 시작될때까지 기다림 wait_for: host: "{{ inventory_hostname }}" state: started delay: 30 timeout: 300 port: 22 delegate_to: localhost become: false |
Fire - forget 방식 (async_status를 이용)
- name: fire and forget task hosts: demoservers remote_user: devops become: true tasks: - name: 큰 사이즈의 파일 다운로드 get_url: url: http://demo.example.com/bigfile.tar.gz async: 3600 poll: 0 register: download_sleeper - name: 다운로드가 끝날때까지 기다림. async_status: jid: "{{ download_sleeper.ansible_job_id }}" register: job_result until: job_result.finished retries: 30 |
같은 방식이지만, 특정한 정보를 얻을때까지 계속 체크하는 방식(until을 이용)
- name: Gather Master VMs info ovirt_vms_facts: pattern: "name={{item.vm.name}}" auth: username: "{{rhev.id}}" password: "{{rhev.pw}}" url: "{{rhev.api_url}}" ca_file: "{{rhev.ca_file}}" with_items: "{{created_master_vms_info.results}}" register: vms_info until: vms_info.ansible_facts.ovirt_vms[0].fqdn is defined ignore_errors: yes retries: 60 delay: 10 when: (master_node_vms is defined and master_node_vms > 0 and j_deploy_type == 'ocp_cluster') |
여러 군데서 확인을 해야할경우는 아래와 같이 delegate_to를 여러가 줄수 있다.
delegate_to: "{{ item }}" with_items: "{{ groups.lbserver }}" |
반응형
'IT > Ansible' 카테고리의 다른 글
[RHCSAA 교육 정리] 9 장 - 12 장 (0) | 2018.03.02 |
---|---|
[RHCSAA 교육 정리] 5 장 - 6장 (0) | 2018.03.02 |
[RHCSAA 교육 정리] 3 장 - 4장 (0) | 2018.03.02 |
[RHCSAA 교육 정리] 1 장 - 2장 (0) | 2018.03.02 |
[RHCSAA]앤서블 자격증 (3) | 2018.03.02 |
댓글
250x250
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 캐나다부동산
- 토론토
- 옥빌
- cert
- Certificate
- 부모님초청이민
- RHCE
- BC주
- 온타리오
- 밀튼
- 벌링턴
- git proGit
- BTBS
- docker
- Jay
- Red Hat
- Canada
- 인터넷
- 토론토정착서비스
- certification
- 부동산분석
- basement
- 캐나다
- RHEL
- redhat
- ansible
- 정착서비스
- 미시사가
- 우드워킹
- TORONTO
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함