sfPot du 16/09/14
Simon C. @kos_si
ansible webservers -m ping
Configuration :
Classement des noms de domaine par groupe
[prod]
symfony.com
symfony2.com
[webservers:children]
prod
[dbservers:children]
prod
inventaire.yml :
[webservers]
my-website.com
playbook.yml :
- hosts: webservers
tasks:
- name: install server
action: apt pkg=apache2 state=present
notify: apache2 restart
- name: configure server
action: template src=httpd.conf
dest=/etc/apache2/httpd.conf
exécution :
ansible-playbook -i inventaire.yml playbook.yml
playbook.yml :
- hosts: webservers sudo: yes vars_files: - vars/mysql.yml roles: - { role: Ansibles.mysql, tags: mysql }
mysql.yml :
mysql_databases:
- name: "{{ symfony_mysql_name }}"
mysql_users:
- name: "{{ symfony_mysql_user }}"
pass: "{{ symfony_mysql_password }}"
priv: "*.*:ALL"
Configuration de :
Choisir un rôle :
# Ansible
config.vm.provision "ansible" do |ansible|
ansible.sudo = true
ansible.playbook = "provision/playbook.yml"
ansible.limit = "vagrant" # hosts group
ansible.inventory_path = "provision/hosts/vagrant"
ansible.verbose = "vvvv"
ansible.tags = "config"
end
ansible-galaxy install kosssi.composer,v1.0.3
ansible-galaxy install -i kosssi.apache,v1.0.1 --force
ansible-galaxy install -i ANXS.mysql,v1.0.2 --force
ansible-galaxy install -i kosssi.php,v1.0.0 --force
ansible-galaxy install -i kosssi.composer,v1.0.3 --force
[vagrant]
symfony.dev
[webservers:children]
vagrant
[dbservers:children]
vagrant
[prod]
symfony.prod
[webservers:children]
prod
[dbservers:children]
prod
/provision/hosts/vagrant :
/provision/hosts/prod :
- name: Provision website
hosts: webservers
sudo: yes
vars_files:
- vars/php.yml
- vars/apache.yml
roles:
- { role: kosssi.php, tags: php }
- { role: kosssi.composer, tags: composer }
- { role: kosssi.apache, tags: apache }
- { role: www-data, tags: www-data }
pour les webservers
- name: Provision database
hosts: dbservers
sudo: yes
vars_files:
- vars/mysql.yml
roles:
- { role: Ansibles.mysql, tags: mysql }
pour les dbservers
Je me suis mis à adorer le devops et à en faire un max
C'est un plaisir de mettre à jour mon provisioning
Avec quelques exemples on peut facilement apprendre à quelqu'un