Ansible - Jose Ramon Arnau Garví
Ansible - Jose Ramon Arnau Garví
Ansible - Jose Ramon Arnau Garví
Crear un Playbook donde automatice varios servidores, se deja al alumno la libertad para
crear la funcionalidad de automatizar las tareas que crea necesarias.
/etc/ansible/ansible.cfg
[defaults]
inventory = /etc/ansible/hosts.yaml
/etc/ansible/hosts.yaml
relayservers:
hosts:
dtc-relay01:
dtc-relay02:
El grupo de servidores “relayservers” está formado por 2 servidores Ubuntu que además
tienen instalado y configurado un servidor de correo “postfix” de tal modo que los
dispositivos internos a la empresa que no pueden enviar correo a través de Office 365
por diversas causas (son viejos, no se puede configurar autenticación,…), son
configurados para que envíen los correos a uno de los dos servidores y estos se encargan
de enviar el correo hacia el destino especificado.
Para ello existe un fichero en Postfix “my_networks” donde se añaden todas las
direcciones IP desde las cuales se permite enviar correo por estos servidores.
Para ello en primer lugar prepararemos ambos servidores para que se puede acceder
desde nuestro servidor con el ansible instalado a estos dos servidores, y ello lo heremos
con la siguiente instrucción:
- dtc-relay01: 5.45.9.13
- dtc-relay02: 5.45.9.14
root@dtc-ansible01:/etc/grupogimeno/deployment/playbooks# ssh-
copy-id -f [email protected]
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed:
"/root/.ssh/id_rsa.pub"
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
https://ubuntu.com/engage/secure-kubernetes-at-the-edge
Para hacernos una idea de lo que vamos a hacer vamos a ver el formato del fichero que
tenemos que ir añadiendo en ambos servidores:
# Comentario X
172.27.215.116/32
# Comentario IIS
172.18.201.18/32
# Comentario Test XX
172.27.215.190/32
Vamos a suponer que queremos enviar correos con una aplicación vieja desde un
servidor y lo tenemos que hacer a través de nuestros servidores internos, los datos del
servidor son:
En primer lugar, vamos a ver como no nos deja enviar correo a través del servidor, para
ello intentaremos enviar un correo mediante línea de comandos con un telnet al puerto
25:
Por lo tanto, lo que tendremos que hacer es añadir la dirección IP 172.20.16.183 a los
servidores de correo para que le permita enviar correo a este servidor:
El playbook inicial que probamos fue:
tasks:
- name: Add Comment and IPs to my_networks file
blockinfile:
dest: /etc/postfix/my_networks
block: |
# Test Server for ansible practique
172.20.16.183/32
root@dtc-ansible01:#ansible-playbook add_IPs_to_my_networks.yaml
[WARNING]: Invalid characters were found in group names but not
replaced, use -vvvv to see details
PLAY
[relayservers]**************************************************
- hosts: relayservers
become: true
serial: 1
vars:
ip: "{{ip}}"
comment: "{{comment}}"
tasks:
- name: Add IP to my_networks file if don't exists
lineinfile:
path: /etc/postfix/my_networks
line: "{{ip}}"
state: present
create: yes
Y el fichero resultado añade los cambios que le vamos haciendo al final del fichero si no
existe, y si existe la IP añade el comentario.
# Comment Test
172.123.123.123/32
# Jarnaus PCs
172.29.2.35/32