info:cursos:pue:devops:sesion5

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
info:cursos:pue:devops:sesion5 [01/03/2019 08:49] – [swarm 3 nodos docker] mateinfo:cursos:pue:devops:sesion5 [04/03/2019 06:07] (actual) – [Sesión 5: Vagrant, Ansible] mate
Línia 1: Línia 1:
-= Sesión 5+= Sesión 5: vagrant, ansible
 == Vagrant == Vagrant
   * ''vagrant init''   * ''vagrant init''
Línia 7: Línia 7:
   * ubicación imágenes vagrant: **$HOME/.vagrand.d/boxes**   * ubicación imágenes vagrant: **$HOME/.vagrand.d/boxes**
   * ''vagrant box list''   * ''vagrant box list''
 +  * ''vagrant port <maquina'' : listado puertos máquinas
  
 == ejemplos == ejemplos
Línia 129: Línia 130:
 end end
 </code> </code>
 +
 +== packer
 +Para construir imágenes exportables/intercambiables entre diferentes entornos cloud/virtualización/docker
 +  * [[https://www.packer.io/intro/getting-started/vagrant.html]]
 +  * ''packer build -only=amazon-ebs example.json''
 +  * [[http://packer.io/docs/builders/index.html]]
 +
 +== ansible
 +hay que usar sus módulos para sacarle provecho
 +=== instalación
 +  * ''sudo apt install python-pip''
 +  * ''sudo pip install ansible''
 +  * [[https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html]]
 +
 +=== inventory
 +  * relación de máquinas, se pueden agrupar y agrupar los grupos
 +  * un equipo puede forma parte de más de un grupo
 +  * [[https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html]]
 +
 +=== 4 nodos (diferentes linux para ansible)
 +<code yaml; Vagrantgile>
 +$mi_script=<<SCRIPT
 +mkdir -m 0700 /root/.ssh
 +cp /vagrant/id_ed25519.pub /root/.ssh/authorized_keys
 +cat /vagrant/id_ed25519.pub >> /home/vagrant/.ssh/authorized_keys
 +chmod 600 /root/.ssh/authorized_keys
 +SCRIPT
 + 
 +Vagrant.configure(2) do |config|
 +  config.vm.define "centos7" do |config|
 +    config.vm.box = "centos/7"
 +    config.vm.hostname = "centos7"
 +    config.vm.network "private_network", ip: "10.0.7.11"
 +    config.vm.provision "shell", inline: $mi_script
 +#    config.vm.synced_folder ".", "/vagrant", disabled: true
 +  end
 + 
 +  config.vm.define "jessie64" do |config|
 +    config.vm.box = "debian/jessie64"
 +    config.vm.hostname = "debianjessie64"
 +    config.vm.network "private_network", ip: "10.0.7.12"
 +    config.vm.provision "shell", inline: $mi_script
 +#    config.vm.synced_folder ".", "/vagrant", disabled: true
 +  end
 +
 +  config.vm.define "jessie66" do |config|
 +    config.vm.box = "debian/jessie64"
 +    config.vm.hostname = "debianjessie66"
 +    config.vm.network "private_network", ip: "10.0.7.14"
 +    config.vm.provision "shell", inline: $mi_script
 +#    config.vm.synced_folder ".", "/vagrant", disabled: true
 +  end
 +
 +  config.vm.define "trusty64" do |config|
 +    config.vm.box = "ubuntu/trusty64" 
 +    config.vm.hostname = "ubuntutrusty64"
 +    config.vm.network "private_network", ip: "10.0.7.13"
 +    config.vm.provision "shell", inline: $mi_script
 +#    config.vm.synced_folder ".", "/vagrant", disabled: true
 +  end
 +
 +end
 +</code>
 +<code>
 +[debian]
 +debian1 ansible_host=127.0.0.1 ansible_ssh_port=2201 ansible_ssh_user=root
 +debian2 ansible_host=127.0.0.1 ansible_ssh_port=2203 ansible_ssh_user=root
 +
 +[centos]
 +centos1 ansible_host=127.0.0.1 ansible_ssh_port=2200 ansible_ssh_user=root
 +
 +[ubuntu]
 +ubuntu1 ansible_host=127.0.0.1 ansible_ssh_port=2202 ansible_ssh_user=root
 +
 +[laboratorio:children]
 +debian
 +centos
 +ubuntu
 +</code>
 +
 +  * ''ansible -m ping laboratorio''
 +  * ''ansible -m apt -a "package=pwgen state=latest update_cache=true" debian''
 +    * instala correctamente
 +  * ''ansible -m apt -a "package=pwgen state=latest update_cache=true" ubuntu''
 +
 +código de colores:
 +  * rojo: error
 +  * naranja: cambios
 +  * verde: no se ha tocado nada o correcto
 +
 +=== ansible-playbook
 +<code yaml; apache.yaml>
 +- hosts: all
 +  tasks:
 +    - name: Install apache httpd but avoid starting it immediately (state=present is optional)
 +      apt:
 +        name: apache2
 +        state: present
 +</code>
 +
 +y ejecutamos con : ''ansible-playbook -l debian apache.yaml''
 +
 +  * ''ansible <hostname> -m setup'' : muestra todas las variables disponibles
 +  * [[https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html]]
 +
 +ejecución solo en ciertas máquinas:
 +<code yaml; system-updates.yaml>
 +- hosts: all
 +  tasks:
 +    - name: actualizar debians
 +      apt: upgrade=yes update_cache=yes
 +      when: ansible_facts['os_family'] == "Debian"
 +      become: true
 +#       Kenneth
 +    - name: Upgrade Centos-Family
 +      yum: name='*' update_only=yes update_cache=yes
 +      when: ansible_os_family == 'RedHat'
 +</code>
 +[[https://docs.ansible.com/ansible/latest/user_guide/playbooks_conditionals.html?highlight=when]]
 +== otros
 +  * [[http://www.gratisexam.com]]
 +  * [[https://medium.com/@Joachim8675309/devops-concepts-pets-vs-cattle-2380b5aab313]]
 +  * %%~%%
 +    * desde root: ''ls -la ~devops'' -> te lista el home del usuario devops
 +    * ''ls -la ~'' : doble tabulador -> te muestra los home de los usuarios definidos en **/etc/passwd**
  • info/cursos/pue/devops/sesion5.1551458980.txt.gz
  • Darrera modificació: 01/03/2019 08:49
  • per mate