728x90
728x90
역할 공식 문서: https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html#playbooks-reuse-roles 역할 생성 → 통합 → 플레이북 통일화 된 구조 역할은 roles 디렉토리를 사용한다. ansible-galaxy init common --init-path roles 명령어로 역할 디렉토리 구조를 생성한다. [vagrant@controller 10_role]$ mkdir roles [vagrant@controller 10_role]$ ansible-galaxy init common --init-path roles - Role common was created successfully [vagrant@contro..
아티팩트 재사용 Artefact, Artifact 애플리케이션이 작동하여 생성한 데이터 사람이 직접 작성한 코드 파일을 용도별로 구분을 하여 재사용하기 위함 앤서블에서는 다음 파일들을 분리하여 재사용성을 높인다. 변수 파일(vars file) 작업 파일 플레이/플레이북 파일 역할(Role) 변수 파일 재사용 vars_files: 플레이북의 키워드이다. - name: test hosts: x vars_files: - a.yml - b.yml - c.yml include_vars: 모듈로 기능은 vars_files 와 동일하다. - name: test hosts: x - include_vars: dir: vars/ # vars 디렉토리에 있는 변수 파일들을 읽는다. - include_vars: var.yml..
Ansible 반복문 공식 문서: https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#playbooks-loops 작업(Task)에서 loop, with_, until 으로 반복문을 사용한다. 리스트 반복문 아래와 같이 주로 사용된다. loop 대신 with_items, with_list 사용할 수 있다. 공식 문서를 참조하면 잘 나와 있다. [vagrant@controller loop]$ cat test.yml - hosts: 192.168.100.11 gather_facts: no vars: fruits: - apple - banana - carrot tasks: - debug: msg: "{{ item }}" loop: "..
템플릿 [vagrant@controller template]$ cat test.yml - hosts: 192.168.100.11 vars: message: korea tasks: - copy: src: origin.txt dest: /tmp/copy.txt - template: src: origin.txt dest: /tmp/template.txt copy 와 template 모듈은 언뜻 보기엔 비슷한 모듈처럼 보이지만 다르다. template 모듈은 동적인 컨텐츠들을 다룰 때 주로 사용한다 {{ 변수명 }} 에 입력한 변수값이 들어가기 때문이다. 예시를 보면서 더 살펴보자. ansible 은 기본 템플릿으로 jinja2 를 사용한다. wp-config.php.j2 템플릿을 생성하고 template 모듈..
ansible 변수 변수 명명 규칙 유효한 변수 명은 위와 같다. 유효하지 않은 변수명은 위와 같다, 숫자로 구성되거나 하이푼, 띄어쓰기, . 이 포함된 변수명, *과 같이 파이썬에서 사용되는 키워드로 작성된 변수 혹은 플레이북 키워드가 변수명에 들어올 경우 유효하지 않은 변수명이 된다. remote_install_path: /opt/my_app_config 변수명은 키: 밸류 형태로 구성된다. --- ansible.builtin.template: src: foo.cfg.j2 name: '{{ abc }}' dest: '{{ remote_install_path }}/foo.cfg' dest: '{{ abc }}'/abc.com # 문법 오류 dest: '{{ abc }}/abc.com' # 올바른 문법 ..
플레이북 실행 ansible-playbook -b -b 옵션은 관리자 권한을 주는 것, 플레이북 내에서 권한을 줄 수도 있다. 플레이북은 태스크를 각각의 관리 노드에 순차적으로 적용하며 실행된다. 태스크의 모든 작업이 끝나야 다음 태스크로 넘어간다. 즉, 동기적으로 태스크가 실행된다. [vagrant@controller ~]$ ansible-playbook test.yml -b PLAY [wp] ********************************************************************** TASK [Gathering Facts] ********************************************************* ok: [192.168.100.11] TA..