티스토리 뷰

IT/Ansible

[RHCSAA 교육 정리] 3 장 - 4장

트래이닝맨 2018. 3. 2. 07:14
728x90
반응형
Chapter 3장. Playbooks 만들기


vi 를 사용할때 indent를 잡아주는 방법 ($HOME/.vimrc)

autocmd FileType yaml setlocal ai ts=2 sw=2 et


Ansible Dry Run
ansible-playbook -C test.yaml

Module status
stableinterface: 안정된 모듈

preview:  시범적으로 사용되는 모듈, 없어질수도 있음

deprecated:  더이상 사용되지 않는 모듈

removed: 완전히 삭제된 모듈 그러나 문서에 남아있음.


Yaml Style
같은 내용, 다른 형식
hosts:
   - a
   - b
   - c


 hosts: [servera, serverb, serverc]  

같은 내용, 다른 형식
  tasks:
  - name: shorthand form
    service: name=httpd enabled=true state=started


  tasks:
  - name: normal form
     service:
        name: httpd
        enabled: true
        state: started


4장 variable & inclusion

변수 파일을 불러오기
vars_files:
  - vars/users.yml

변수 지정하기
vars:
   user: joe

폴더 방식으로 변수 지정하기

group_vars
  - datacentes

host_vars
  - master1.example.com

같은 내용, 다른 형식
 a:
    b:
      c: test

a.b.c

a['b']['c']


긴 string 변수
- 라인을 유지
include_newlines: |
  Example Company
  123 Main Street

  Atlanta, GA 30303 


- 라인을 무시
fold_newlines: >
  This is
  a very long,
  long, long, long

  sentence. 




Ansible Facts (gather_facts=true) 을 이용하면 아래의 정보를 얻을수 있다.
- host name (ansible_hostname)
- FQDN (ansible_fqdn)
- kernel version  (ansible_kernel)
- network interfaces (ansible_interfaces)
- ip address  (ansible_default_ipv4.address)
- OS version 
- environment variables
- number of cpu
- available or free meemory
- disk space (ansible_devices.vda.partions.vda1.size)
- DNS server (ansible_dns.nameservers)


$ ansible example.com -m setup

Facts filter
$ ansible example.com -m setup -a 'filter=ansible_fqdn'


Custom fact (ini or json)
아래 파일을  /etc/ansible/facts.d/custom.fact 복사해라
var를 부르는 형식: ansible_local['custom']['package']['web'] is httpd

[package]
web = httpd
db = mariadb-server

[service]
web = httpd
db = mariadb-server
------------------------------------------------
{
  "package": {
    "web": "httpd"
    "db": "mariadb-server"
    },
    "service": {
      "web": "httpd",
      "db: "mariadb-server"
    }
}


특수 Vars
- hostvars
- group_names
- groups
- inventory_hostname

 ansible localhost -m debug -a 'var=hostvars["localhost"]'


Task에서도 var file을 포함가능
include_vars: vars/variable.yml

Task를 Task에서 포함가능
include: another_task.yml

좋은 예제

 - name: Installs the package
   include: install_package.yml
   vars:
   packages:
   web_pkg: tomcat





반응형

'IT > Ansible' 카테고리의 다른 글

[RHCSAA 교육 정리] 9 장 - 12 장  (0) 2018.03.02
[RHCSAA 교육 정리] 7 장 - 8장  (0) 2018.03.02
[RHCSAA 교육 정리] 5 장 - 6장  (0) 2018.03.02
[RHCSAA 교육 정리] 1 장 - 2장  (0) 2018.03.02
[RHCSAA]앤서블 자격증  (3) 2018.03.02
댓글
250x250
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함