Ansible
WIP###
“I wanted a tool that I could not use for 6 months, come back later, and still remember how it worked.” - Michael DeHaan, creator.
Ansible är ett automatiseringsverktyg som hjälper till att managera din miljö. Är det rätt verktyg för dig? http://www.infoworld.com/article/2609482/data-center/data-center-review-puppet-vs-chef-vs-ansible-vs-salt.html
Contents
Installation
Till skillnad mot t.ex. puppet finns det inga agenter/klienter utan man installerar endast på en maskin, dvs standalone.
#Ubuntu sudo apt-get install software-properties-common sudo apt-add-repository ppa:ansible/ansible sudo apt-get update sudo apt-get install ansible #CentOS/Fedora sudo yum install ansible #Alternativt sudo pip install ansible
Inventory
I ditt inventory läggs alla maskiner till och finns default i: /etc/ansible/host
#[all] dbsrv1 dbsrv2 websrv1 websrv2 [dbservers] dbsrv1 ansible_ssh_host=192.0.2.11 dbsrv2 ansible_ssh_user=username [webservers] websrv1 websrv2
Moduler
http://docs.ansible.com/modules_by_category.html
ansible -m [modulnamn] all ansible -m shell -a 'free -m' host1:host3
Default används SSH-nyckel för autentisering, för pw-fråga istället lägg till: -k
Playbooks
En playbook är en uppsättning instruktioner skrivna i yaml. Yaml är lättläst för oss människor.
ansible-playbook -i inventory_file dinplaybook.yml
Exempel på playbook:
- hosts: all tasks: - name: install apache2 apt: pkg=apache state=present update_cache=true - name: start service service: name=apache2 state=started
Om man har angett hosts i playbooken behövs de inte anges när man kör kommandot. Annars kan man specificera enskilda hosts.
ansible-playbook -l host5 apache.yml
Sudo
ansible-playbook -l host5 apache.yml --ask-sudo-pass
Ladda upp filer
Man kan ladda upp lokala filer i tasken.
- name: Upload default index.html for host copy: src=localfiles/index.html dest=/var/www/html/ mode=0644
YAML
Yaml använder mellanslag som delimiter, använd ej tab.
hosts:
tasks:
handlers: