FreeBSD 14
Sponsored Link

Ansible : Use Playbook (basic)2024/09/11

 

This is the basic usage of Ansible Playbook.

Playbook is written as YAML file.

[1] For example, create a Playbook that a file exists with the same permission.
freebsd@dlp:~ $
vi playbook_sample.yml
# target host or group
- hosts: 10.0.0.51
  tasks:
  # any task name
  - name: Test Task
    # use file module to set the file state
    file:
      path: /home/freebsd/test.conf
      state: touch
      owner: freebsd
      group: freebsd
      mode: 0600

# run Playbook

freebsd@dlp:~ $
ansible-playbook playbook_sample.yml


PLAY [10.0.0.51] *******************************************************************

TASK [Gathering Facts] *************************************************************
ok: [10.0.0.51]

TASK [Test Task] *******************************************************************
changed: [10.0.0.51]

PLAY RECAP *************************************************************************
10.0.0.51                  : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

# verify

freebsd@dlp:~ $
ansible 10.0.0.50 -m command -a "ls -l /home/freebsd"

10.0.0.51 | CHANGED | rc=0 >>
total 1
-rw-------  1 freebsd freebsd 0 Sep 11 10:25 test.conf
[2] For example, create a Playbook that Apache2 is installed and running.
freebsd@dlp:~ $
vi playbook_sample.yml
- hosts: target_servers
  # use privilege (default : root)
  become: yes
  # method to use privilege
  become_method: sudo
  tasks:
  # task settings
  - name: apache httpd is installed
    pkgng:
      name: apache24
      state: present
  - name: apache httpd is running and enabled
    service:
      name: apache24
      state: started
      enabled: yes

freebsd@dlp:~ $
ansible-playbook playbook_sample.yml --ask-become-pass

BECOME password:

PLAY [target_servers] ***********************************************************************

TASK [Gathering Facts] **********************************************************************
ok: [10.0.0.51]
ok: [10.0.0.52]

TASK [apache httpd is installed] ************************************************************
changed: [10.0.0.52]
changed: [10.0.0.51]

TASK [apache httpd is running and enabled] *******************************************************
changed: [10.0.0.51]
changed: [10.0.0.52]

PLAY RECAP **********************************************************************************
10.0.0.51                  : ok=3    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
10.0.0.52                  : ok=3    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

# verify

freebsd@dlp:~ $
ansible target_servers -m shell -a "/usr/sbin/service apache24 status"

10.0.0.52 | CHANGED | rc=0 >>
apache24 is running as pid 1531.
10.0.0.51 | CHANGED | rc=0 >>
apache24 is running as pid 1738.
Matched Content