Ansible tutorial

The best way to increase my DevOps skill.

Start your Project

$ mkdir project
$ cd project

Create Ansible Inventory file

~/project/hosts

[webserver]
127.0.0.1
192.168.0.1

List of hosts you want to manage, grouped into groups.(127.0.0.1 deploy your local machine)

Create ansible playbook

~/project/playbook.yml

- hosts: 127.0.0.1
user: root
tasks:
  - name: install nginx
    apt: pkg=nginx state=present
  - name: start nginx every bootup
    service: name=nginx state=started enabled=yes

Ansible run playbook

ansible-playbook -i hosts playbook.yml

Structure ansible role

roles/
common/
tasks/
handlers/
files/ # 'copy' will refer to this
templates/ # 'template' will refer to this
meta/ # Role dependencies here
vars/
defaults/
main.yml

Ansible Modules

Service modules

- service:
   name: nginx
   state: started
   enabled: yes

Install Nginx modules

tasks:
  - name: ensure nginx is at the latest version
    apt: name=nginx state=latest
  - name: start nginx
    service:
     name: nginx
     state: started

Ansible shell

- shell: apt-get install nginx -y

script module

- script: /home/huupv/script.sh
  args:
    creates: /path/file # skip if this exists
    removes: /path/file # skip if this is missing
    chdir: /path # cd here before running

Keep reading. I will update later!