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 10:32] – [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 130: Línia 131:
 </code> </code>
  
-=== nodos (diferentes linux+== packer 
-para su uso en ansible+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]] 
 + 
 +=== nodos (diferentes linux para ansible)
 <code yaml; Vagrantgile> <code yaml; Vagrantgile>
-$sshinit = <<SCRIPT+$mi_script=<<SCRIPT
 mkdir -m 0700 /root/.ssh mkdir -m 0700 /root/.ssh
 cp /vagrant/id_ed25519.pub /root/.ssh/authorized_keys cp /vagrant/id_ed25519.pub /root/.ssh/authorized_keys
Línia 139: Línia 157:
 chmod 600 /root/.ssh/authorized_keys chmod 600 /root/.ssh/authorized_keys
 SCRIPT SCRIPT
 + 
 Vagrant.configure(2) do |config| Vagrant.configure(2) do |config|
-  config.vm.define "debian1" do |config| +  config.vm.define "centos7" do |config| 
-    config.vm.box = "debian/stretch64+    config.vm.box = "centos/7
-    config.vm.hostname = "debian1+    config.vm.hostname = "centos7" 
-    config.vm.provision "shell", inline: $sshinit+    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   end
- +  
-  config.vm.define "debian2" do |config| +  config.vm.define "jessie64" do |config| 
-    config.vm.box = "debian/stretch64+    config.vm.box = "debian/jessie64
-    config.vm.hostname = "debian2+    config.vm.hostname = "debianjessie64" 
-    config.vm.provision "shell", inline: $sshinit+    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   end
  
-  config.vm.define "centos1" do |config| +  config.vm.define "jessie66" do |config| 
-    config.vm.box = "centos/7+    config.vm.box = "debian/jessie64
-    config.vm.hostname = "centos1+    config.vm.hostname = "debianjessie66" 
-    config.vm.provision "shell", inline: $sshinit+    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   end
  
-  config.vm.define "ubuntu1" do |config| +  config.vm.define "trusty64" do |config| 
-    config.vm.box = "ubuntu/bionic64+    config.vm.box = "ubuntu/trusty64"  
-    config.vm.hostname = "ubuntu1+    config.vm.hostname = "ubuntutrusty64" 
-    config.vm.provision "shell", inline: $sshinit+    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
  
 end end
 </code> </code>
-== packer +<code> 
-Para construir imágenes exportables/intercambiables entre diferentes entornos cloud/virtualización/docker +[debian] 
-  * [[https://www.packer.io/intro/getting-started/vagrant.html]] +debian1 ansible_host=127.0.0.1 ansible_ssh_port=2201 ansible_ssh_user=root 
-  * ''packer build -only=amazon-ebs example.json'' +debian2 ansible_host=127.0.0.1 ansible_ssh_port=2203 ansible_ssh_user=root
-  * [[http://packer.io/docs/builders/index.html]]+
  
-== ansible +[centos] 
-hay que usar sus módulos para sacarle provecho +centos1 ansible_host=127.0.0.1 ansible_ssh_port=2200 ansible_ssh_user=root
-=== instalación +
-  * ''sudo apt install python-pip'' +
-  * ''sudo pip install ansible'' +
-  * [[https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html]]+
  
-=== inventory +[ubuntu] 
-  * relación de máquinas, se pueden agrupar y agrupar los grupos +ubuntu1 ansible_host=127.0.0.1 ansible_ssh_port=2202 ansible_ssh_user=root
-  * un equipo puede forma parte de más de un grupo +
-  * [[https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html]]+
  
 +[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 == otros
   * [[http://www.gratisexam.com]]   * [[http://www.gratisexam.com]]
   * [[https://medium.com/@Joachim8675309/devops-concepts-pets-vs-cattle-2380b5aab313]]   * [[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.1551465127.txt.gz
  • Darrera modificació: 01/03/2019 10:32
  • per mate