= DevOps Sesión 13 (2022-03-23) Ansible == Documentación relacionada * ./4-Topic 704 Configuration Management * ./Material Curso Ansible/Curso Ansible 2020.pdf == variables * ./Material Curso Ansible/Curso Ansible 2020.pdf pag 71 * ./Material Curso Ansible/Clase Ansible variables basicas .txt - name: ensure a list of packages installed yum: name: "{{ packages }}" vars: packages: - httpd - httpd-tools - php == plantillas jinja2 * ./Material Curso Ansible/DO407-AUTOMATION WITH ANSIBLE I.pdf pag 82 * **/etc/ansible/playbook-resueltos/host.j2**: {{ miip }} {{ ansible_hostname }} {{ ansible_fqdn }} * --- - name : Crear un fichero con variables hosts: clientes remote_user: root vars: - miip: "1.2.3.4" tasks: - name: Crear fichero hosts template: src=hosts.j2 dest=/tmp/hosts ... ansible clientes -a "cat /tmp/hosts" ansible-playbook -e miip=192.168.1.50 playbook_sample_variables-ejemplo1.yml === ejemplo Curso de DO407-AUTOMATION WITH ANSIBLE I
Curso de DO407-AUTOMATION WITH ANSIBLE I
{% if ansible_distribution == "CentOS" %}

Esta es la página de bienvenida predeterminada para probar el correcto funcionamiento del servidor Apache2 después de la instalación en los sistemas {{ ansible_distribution_version }}. Se basa en la página equivalente en centos. Si puede leer esta página, significa que el servidor HTTP Apache instalado en este sitio funciona correctamente. Debe reemplazar este archivo (ubicado en /var/www/html/index.html) antes de continuar operando su servidor HTTP. El usuario de configuración de este sitio web es ansible. El servidor desde donde se muestra este contenido es {{ ansible_hostname }} con la ip {{ ansible_default_ipv4.address }} por el puerto 80. You should replace this file (located at /var/www/html/index.html) before continuing to operate your HTTP server.

{% endif %}
Datos del usuario {{ usuario }}

  • Hostname: {{ ansible_hostname }}
  • IP V4: {{ ansible_default_ipv4.address }}
  • DNS Servers: {{ ansible_dns.nameservers }}
  • Kernel version: {{ ansible_kernel }}
  • Centos distribution: {{ ansible_distribution_version }}
  • Total de memoria: {{ ansible_memtotal_mb }} MBs
  • The current free memory is: {{ ansible_memfree_mb }} MBs
  • Today's date is: {{ ansible_date_time.date }}.

/etc/apache2/
|-- apache2.conf
|       `--  ports.conf
|-- mods-enabled
|       |-- *.load
|       `-- *.conf
|-- conf-enabled
|       `-- *.conf
|-- sites-enabled
|       `-- *.conf
          
  • apache2.conf is the main configuration file. It puts the pieces together by including all remaining configuration files when starting up the web server.
  • ports.conf is always included from the main configuration file. It is used to determine the listening ports for incoming connections, and this file can be customized anytime.
  • Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/ directories contain particular configuration snippets which manage modules, global configuration fragments, or virtual host configurations, respectively.
  • They are activated by symlinking available configuration files from their respective *-available/ counterparts. These should be managed by using our helpers a2enmod, a2dismod, a2ensite, a2dissite, and a2enconf, a2disconf . See their respective man pages for detailed information.
  • The binary is called apache2. Due to the use of environment variables, in the default configuration, apache2 needs to be started/stopped with /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not work with the default configuration.
Document Roots

By default, Ubuntu does not allow access through the web browser to any file apart of those located in /var/www, public_html directories (when enabled) and /usr/share (for web applications). If your site is using a web document root located elsewhere (such as in /srv) you may need to whitelist your document root directory in /etc/apache2/apache2.conf.

The default Ubuntu document root is /var/www/html. You can make your own virtual hosts under /var/www. This is different to previous releases which provides better security out of the box.

Reporting Problems

Please use the ubuntu-bug tool to report bugs in the Apache2 package with Ubuntu. However, check existing bug reports before reporting a new bug.

Please report bugs specific to modules (such as PHP and others) to respective packages, not to the web server itself.

Valid XHTML 1.0 Transitional

- hosts: clientes remote_user: root vars: system_owner: usuario@example.com usuario: Usuario-Berto tasks: - template: src: /etc/ansible/templates/index.html.j2 dest: /var/www/html/index.html owner: root group: root mode: 0644 - name: httpd is running and enabled service: name: httpd state: restarted * listado de variables (ansible_facts):ansible clientes -m setup | grep ansible_ * [[https://docs.ansible.com/ansible/latest/user_guide/playbooks_vars_facts.html]] == roles * ./Material Curso Ansible/Curso Ansible 2020.pdf pag 95 * ./Material Curso Ansible/DO407-AUTOMATION WITH ANSIBLE I.pdf pag 117 * ./Material Curso Ansible/ Los roles permiten organizar los playbooks y separarlos en ficheros más pequeños. Los roles proporcionan a Ansible una forma de utilizar tareas, handlers y variables desde archivos externos. Los archivos estáticos y las plantillas también se pueden asociar y hacer referencia mediante un rol. * estructura * defaults * main.yml * files * handlers * main.yml * meta * main.yml * tasks * main.yml * templates * tests * inventory * test.yml * vars * main.yml * README.md == ansible galaxy * ./Material Curso Ansible/Curso Ansible 2020.pdf pag 207 * ./Material Curso Ansible/DO407-AUTOMATION WITH ANSIBLE I.pdf pag 108 * [[https://galaxy.ansible.com]] * [[https://galaxy.ansible.com/zaxos/tomcat-ansible-role]] ansible-galaxy role --help ansible-galaxy install zaxos.tomcat-ansible-role ansible-galaxy list ansible-galaxy init --- - hosts: clientes user: root become: true vars: tomcat_version: 8.5.23 tomcat_permissions_production: True tomcat_users: - username: "tomcat" password: "t3mpp@ssw0rd" roles: "tomcat,admin,manager,manager-gui" - username: "exampleuser" password: "us3rp@ssw0rd" roles: "tomcat" roles: - role: zaxos.tomcat-ansible-role ... * ./Material Curso Ansible/roles ansible para laboratorios/docker-wp-jm-ansible * usar ansible para personalizar un docker-compose.yml que se lanzará en los ndoos destino * ./Material Curso Ansible/roles ansible para laboratorios/password-role == windows * ./Material Curso Ansible/Ansible-Windows-winrm/ * ./Material Curso Ansible/Ansible-Vmware-vSphere/ * ./Material Curso Ansible/Curso Ansible 2020.pdf pag * ./Material Curso Ansible/DO407-AUTOMATION WITH ANSIBLE I.pdf pag * [[https://docs.ansible.com/ansible/2.9/modules/list_of_windows_modules.html]] * ./Material Curso Ansible/Ansible-Windows-winrm/Configure ansible-windows.txt * WinRM (protocolo en máquinas Windows desde W2012) * https/5986, http/5985 * .NET 4.0: Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse | Get-ItemProperty -Name version -EA 0 | Where { $_.PSChildName -Match '^(?!S)\p{L}'} | Select PSChildName, version * script ejecutar máquina windows para permitir conexión: **https://github.com/ansible/ansible/blob/devel/examples/scripts/ConfigureRemotingForAnsible.ps1** * Dependencia master ansible:yum install python2-winrm.noarch -y * ... [win] 192.168.1.46 [win:vars] ansible_user=Administrador ansible_password=Password,013 ansible_connection=winrm ansible_winrm_server_cert_validation=ignore ansible_become_method=runas ansible_become_user=Administrador ... === chocolatey * "apt" para Windows * [[https://chocolatey.org/]] * [[https://boxstarter.org]] == ansible vault * ./Material Curso Ansible/Curso Ansible 2020.pdf pag 226 * ./Material Curso Ansible/DO407-AUTOMATION WITH ANSIBLE I.pdf pag 127 * ./Material Curso Ansible/Introduccion Ansible.txt línea 168 * Cifrar playbooks * ''ansible-vault'' * encrypt * decrypt * edit * view * encrypt_string: solo encripta una cadena que se puede usar en una variable del .yaml * ''ansible-playbook'' * ''%%--%%ask-vault-pass'' * ''%%--vault-password-file%%'': contraseña en texto plano dentro de un fichero (en el master) == Extra * [[https://image.ibb.co/]] * kubernetes: [[https://galaxy.ansible.com/kubernetes/core]]