Ubuntu 24.04
Sponsored Link

Ansible : Playbook का उपयोग करें (Roles)2024/07/31

 

यह [Roles] सुविधा का उपयोग करने का उदाहरण है।
भूमिकाओं का उपयोग करने के लिए, [include] वाक्य लिखे बिना अन्य कार्यों या Playbooks को शामिल करना संभव है।

भूमिकाओं का उपयोग करने के लिए डायरेक्टरी ट्री को निम्नानुसार कॉन्फ़िगर करना आवश्यक है।
बायीं छवि पूरे पेड़ को दिखाती है, दाहिनी छवि इस उदाहरण पर Playbook का एक उदाहरण दिखाती है।

+--- playbook.yml                  +--- playbook_sample.yml
|                                  |
+--- roles/                        +--- roles/
     |                                  |
     +--- role01/                       +--- ins_mariadb/
          |                             |    |
          +--- files/                   |    +--- vars/
          |                             |    |    |
          +--- templates/               |    |    +--- main.yml
          |                             |    +--- tasks/
          +--- tasks/                   |         |
          |                             |         +--- main.yml
          +--- handlers/                |
          |                             +--- ins_nginx/
          +--- vars/                              |
          |                                       +--- files/
          +--- defaults/                          |    |
          |                                       |    +--- index.html
          +--- meta/                              +--- vars/
                                                  |    |
                                                  |    +--- main.yml
                                                  |
                                                  +--- tasks/
                                                       |
                                                       +--- main.yml

[1] भूमिकाओं का उपयोग करने के लिए यह Playbook है जिसे MariaDB और Nginx स्थापित और प्रारंभ किया गया है।
ubuntu@dlp:~$
mkdir -p roles/ins_mariadb/{tasks,vars}

ubuntu@dlp:~$
mkdir -p roles/ins_nginx/{files,tasks,vars}

ubuntu@dlp:~$
vi playbook_sample.yml
- hosts: target_servers
  become: yes
  become_method: sudo
  roles:
    - ins_mariadb
    - ins_nginx

ubuntu@dlp:~$
vi roles/ins_mariadb/vars/main.yml
mariadb_package:
  - mariadb-server
  - python3-pymysql

ubuntu@dlp:~$
vi roles/ins_mariadb/tasks/main.yml
- name: mariadb is installed
  apt:
    name: "{{ mariadb_package }}"
    state: present
  tags: install_mariadb

- name: mariadb is running and enabled
  service:
    name: mariadb
    state: started
    enabled: yes

ubuntu@dlp:~$
vi roles/ins_nginx/vars/main.yml
nginx_package:
  - nginx

ubuntu@dlp:~$
vi roles/ins_nginx/tasks/main.yml
- name: nginx is installed
  apt:
    name: "{{ nginx_package }}"
    state: present
  tags: install_nginx

- name: edit nginx.default
  lineinfile:
    path: /etc/nginx/sites-available/default
    regexp: "server_name _;"
    line: "server_name {{ ansible_fqdn }};"
  tags: edit_nginx.default

- name: nginx is running and enabled
  service:
    name: nginx
    state: started
    enabled: yes

- name: put index.html
  copy:
    src: index.html
    dest: /var/www/html
    owner: root
    group: root
    mode: 0644

- name: check nginx
  uri:
    url: http://{{ ansible_fqdn }}

ubuntu@dlp:~$
echo "nginx index page" > roles/ins_nginx/files/index.html
ubuntu@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 [ins_mariadb : mariadb is installed] **************************************
ok: [10.0.0.51]
ok: [10.0.0.52]

TASK [ins_mariadb : mariadb is running and enabled] ****************************
ok: [10.0.0.52]
ok: [10.0.0.51]

TASK [ins_nginx : nginx is installed] ******************************************
ok: [10.0.0.51]
ok: [10.0.0.52]

TASK [ins_nginx : edit nginx.default] ******************************************
changed: [10.0.0.52]
changed: [10.0.0.51]

TASK [ins_nginx : nginx is running and enabled] ********************************
changed: [10.0.0.51]
changed: [10.0.0.52]

TASK [ins_nginx : put index.html] **********************************************
changed: [10.0.0.52]
changed: [10.0.0.51]

TASK [ins_nginx : check nginx] *************************************************
ok: [10.0.0.52]
ok: [10.0.0.51]

PLAY RECAP *********************************************************************
10.0.0.51                  : ok=8    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
10.0.0.52                  : ok=8    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
मिलान सामग्री