DevOps Tools/Configuration/Ansible/Playbook Examples
From r00tedvw.com wiki
Overview | Continuous Integration (CI) | Source Control Management (SCM) | Containerization | Configuration | Integration
Ansible | Playbook Examples
Contents |
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