DevOps Tools/Configuration/Ansible/Playbook Examples

From r00tedvw.com wiki
Jump to: navigation, search

Overview | Continuous Integration (CI) | Source Control Management (SCM) | Containerization | Configuration | Integration
Ansible | Playbook Examples

Contents

 [hide

Playbook Examples

CentOS - ensure certain packages are installed

This uses the yum module

~$ sudo cat /etc/ansible/playbooks/centos_base_packages.yml
- hosts: centos
  tasks:
    - name: ensure a list of packages installed
      yum:
        name: "{{ packages }}"
      vars:
        packages:
        - telnet
        - net-tools
        - vim
        - tcpdump
        - bind-utils
        - redhat-lsb-core
        - wget
        - nfs-utils
        - policycoreutils-python
        - setroubleshoot
        - setools

~$  ansible-playbook /etc/ansible/playbooks/centos_base_packages.yml

CentOS - update the hosts file from template

This uses the template module and requires that a template already be created. The template can be a plain host file without variables, will be static, and will replace any existing hosts file in place.

~$ sudo cat /etc/ansible/playbooks/hosts.yml
- hosts: centos
  tasks:
    - name: host file
      template:
        src: /etc/ansible/templates/hosts.j2
        dest: /etc/hosts

Linux - Set the permissions for all files and folders within a directory recursively

This uses the file module. It should be noted that while it will set the execution bit on directories (if there is none), it will not do so on files UNLESS at least (1) execution bit is already set.

$ cat /etc/ansible/playbooks/ansible_permissions.yml
- hosts: ansible
  tasks:
    - name: ansible permissions
      file:
        #state: directory
        path: /etc/ansible
        owner: root
        group: root
        mode: u=rwX,g=rX,o=rX
        recurse: yes
Personal tools
Namespaces

Variants
Actions
Navigation
Mediawiki