Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Aprovisionamiento
Oscar H. Mondragón
1. Objetivos
2. Herramientas a utilizar
• Vagrant
• VirtualBox
• Provisioners: Shell, Ansible, Puppet
Vagrant.configure("2") do |config|
config.vm.define :clienteUbuntu do |clienteUbuntu|
clienteUbuntu.vm.box = "bento/ubuntu-20.04"
clienteUbuntu.vm.network :private_network, ip: "192.168.100.2"
clienteUbuntu.vm.hostname = "clienteUbuntu"
end
3.2. Pruebas básicas de aprovisionamiento
Note que el servidor esta siendo aprovisionado usando a línea:
servidorUbuntu.vm.provision "shell", path: "script.sh"
Verifique el aprovisionamiento y explique su funcionamiento.
PUPPET
Vagrant.configure("2") do |config|
config.vm.box = "bento/ubuntu-20.04"
config.vm.hostname = "puppetServer"
puppet.manifests_path = "puppet/manifests"
puppet.manifest_file = "site.pp"
puppet.module_path = "puppet/modules"
end
end
Cree los archivos con el siguiente contenido:
site.pp
index.html
init.pp
5. (Opcional-Desafío) Aprovisionamiento con Ansible
Ansible no corre directamente en un host Windows pero puede correr bajo el
Windows Subsystem for Linux (WSL).
En el repositorio https://github.com/omondragon/testAnsible se encuentra un
ejemplo basico de aprovisionamiento con Ansible y los archivos usados aquí.
Esta parte de la practica es opcional. Para instalar Ansible en WSL se sugieren
algunas referencias al final de esta guía.
- hosts: all
become: true
tasks:
apt: update_cache=yes
- name: instalar apache
script: prueba.sh
NOTA:
Puede usar herramientas como https://onlineyamltools.com/edit-yaml para
verificar sus archivos yaml.
PARA USUARIOS WINDOWS (EN HOST)
Puede usar visualstudio y agregar soporte para yaml:
https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml
PARA USUARIOS UNIX (EN HOST)
Modificar (Crear) el archivo ~/.vimrc para trabajar con Yaml.
$ vim ~/.vimrc
En este playbook especı́fico estamos realizando lo siguiente:
○ instale apache
○ Ejecute un bash script
El contenido de del bash script (prueba.sh) puede ser, por ejemplo algo tan simple
como iniciar el servicio de apache y ejecutar un comando wget para comprobar el
servicio y copiar el resultado en un archivo de texto en el directorio sincronizado
/vagrant/
#!/bin/bash
6. Ejercicio
1. Implemente el aprovisionamiento basado en Shell propuesto en la sección 3.
Explique su funcionamiento.
2. Implemente el aprovisionamiento basado en Puppet propuesto en la sección
4. Explique su funcionamiento.
3. Aprovisione un servidor FTP personalizado usando el aprovisionador que
mas le guste. Realice automáticamente:
a. Cree al menos un usuario local
b. Cambie el banner de bienvenida
c. Restrinja el acceso a usuarios anónimos
4. Aprovisione una maquina Vagrant con un contenedor LXD corriendo un sitio
web personalizado
6. Bibliografía
• Sitio oficial Ansible: https://www.ansible.com/
• Vagrant Provisioning with Puppeet.
https://medium.com/@Joachim8675309/vagrant-provisioning-with-
puppet-553a59f0c48e
• Automation testing with ansible, molecule and Vagrant.
https://www.trustedsec.com/blog/automation-testing-with-ansible-
molecule-and-vagrant/
• Correr Ansible en Windows.
https://docs.ansible.com/ansible/2.5/user_guide/windows_faq.html
• Instalar WSL en Windows. https://docs.microsoft.com/en-
us/windows/wsl/install-win10
• Aprovisionamiento en Vagrant:
https://www.vagrantup.com/docs/provisioning
• Vagrant Provisioning with Puppet.
https://medium.com/@Joachim8675309/vagrant-provisioning-with-
puppet-553a59f0c48e
• G.ST.02 Guía de Computación en la nube (2018):
https://estrategia.gobiernoenlinea.gov.co/623/articles-75246_recurso_2.pdf