Ansible Module

ansible 의 공식 문서이다.

Ansible Documentation - Ansible Documentation

여기서 왼쪽 메뉴에 보면 Collection Index가 보인다.

Collection Index 에서 amazon도 좋지만 ansible의 순수 실력을 올리기 위해서는

Ansible.Builtin - Ansible Documentation

ansible의 내장 docs인 build-in part를 읽어보는 것도 좋은 방법이다.

실습

---

- name: Example
  hosts: ubuntu
  become: true
  tasks:
  # Docs: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/user_module.html
  - name: "Create a user"
    user: "name=fastcampus shell=/bin/bash"

  - name: "Hello World"
    command: "echo 'Hello World!'"

  # Docs: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/lineinfile_module.html
  - name: "Add DNS server to resolv.conf"
    lineinfile:
      path: /etc/resolv.conf
      line: 'nameserver 8.8.8.8'

  # Docs: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/apt_module.html
  - name: "Install Nginx"
    apt:
      name: nginx
      state: present
      update_cache: true

  # Docs: https://docs.ansible.com/ansible/latest/collections/ansible/posix/synchronize_module.html
  - name: "Upload web directory"
    synchronize:
      src: files/html/
      dest: /var/www/html
      archive: true
      checksum: true
      recursive: true
      delete: true

  # Docs: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/copy_module.html
  - name: "Copy nginx configuration file"
    copy:
      src: files/default
      dest: /etc/nginx/sites-enabled/default
      owner: "{{ ansible_user }}"
      group: "{{ ansible_user }}"
      mode: '0644'

  # Docs: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/service_module.html
  - name: "Ensure nginx service started"
    service:
      name: nginx
      state: started

user

ansible.builtin.user module - Manage user accounts - Ansible Documentation

lineinfile

ansible.builtin.lineinfile module - Manage lines in text files - Ansible Documentation

apt

ansible.builtin.apt module - Manages apt-packages - Ansible Documentation

synchronize

ansible.posix.synchronize module - A wrapper around rsync to make common tasks in your playbooks quick and easy - Ansible Documentation

copy

ansible.builtin.copy module - Copy files to remote locations - Ansible Documentation

service

ansible.builtin.service module - Manage services - Ansible Documentation

ansible의 작성법

하나의 String

- name: "Create a user"
    user: "name=fastcampus shell=/bin/bash"

오른쪽과 같이 ‘name=fastcampus' 처럼 ‘[키]=[값]’ 으로 표현하는 방법

yaml 문법 방식

apt:
      name: nginx
      state: present
      update_cache: true

yaml의 문법처럼

[키] : [값]

으로 표현 하는 방법

free-form 방식

name: :"Hello World"
	command: "echo 'Hello World'"

“[명령어] ’[값]’ ” 의 방식으로 작성하는 방법이다.

command 모듈을 사용할 때 사용 가능하다.


#Ansible