Commit 17863686 authored by Daniel Marcelo Quisbert Calle's avatar Daniel Marcelo Quisbert Calle
Browse files

first commit

parents
---
- hosts: kvm
sudo: yes
roles:
- host
---
- hosts: kvm
sudo: yes
roles:
- crear-lxc
- hosts: lxc
sudo: yes
roles:
- configurar-lxc
---
- hosts: apache-proxy
sudo: yes
roles:
- apache-proxy
- hosts: ldap-server
sudo: yes
roles:
- ldap-server
- hosts: postgres-server
sudo: yes
roles:
- postgres-server
- hosts: tomcat-general
sudo: yes
roles:
- tomcat-general
- hosts: tomcat-geonetwork
sudo: yes
roles:
- tomcat-geonetwork
- hosts: tomcat-geoserver
sudo: yes
roles:
- tomcat-geoserver
- hosts: tomcat-proxy
sudo: yes
roles:
- tomcat-proxy
---
- hosts: lxc
sudo: yes
roles:
- postconf
# Instalación
Para ejecutar comandos ansible se necesita el soporte de Python 2.7 independientemente del sistema operativo en que se vaya a trabajar, el entorno Python se puede encontrar [aqui](https://www.python.org/).
### Requisitos
Una vez que se haya verificado que tenemos instalado el soporte para la ejecución de scripts en Python se necesitan instalar algunos módulos de Python.
Los módulos de Python se pueden instalar mediante [Easy Install](https://pypi.python.org/pypi/setuptools) o [PIP](https://pypi.python.org/pypi/pip), mediante el administrador de paquetes o en su defecto desde el código fuente de cada módulo.
##### Paquetes
###### SSH-Pass
[[REF.]](https://packages.debian.org/search?keywords=sshpass) Para la distribución de Ubuntu o Debian, este módulo se puede instalar desde el administrador de paquetes:
```sh
$ apt-get install sshpass
```
###### Pip
[[REF.]](https://pypi.python.org/pypi/pip) Para la distribución de Ubuntu o Debian, este módulo se puede instalar desde el administrador de paquetes:
```sh
$ apt-get install python-pip
```
###### Crypto
[[REF.]](https://pypi.python.org/pypi/pycrypto) Para la distribución de Ubuntu o Debian, este módulo se puede instalar mediante pip de la siguiente manera:
```sh
$ apt-get install python-crypto
```
###### Ansible
[[REF.]](http://docs.ansible.com/intro_installation.html) Para la distribución de Ubuntu o Debian, esta aplicación se puede instalar mediante pip de la siguiente manera:
```sh
$ pip install ansible
```
### Preparación
Antes de ejecutar cualquier comando de ansible se deben tener dos archivos en la carpeta desde la cual vamos a usar ansible, estos archivos son ansible.cfg y el archivo de invetario.
#### ansible.cfg
~~~
[defaults]
# modificar la carpeta donde se encuentra el inventario
hostfile = /carpeta/proyecto/inventario
host_key_checking = False
~~~
#### inventario
~~~
# modificar las ip's deseadas para los servidores y las propiedades de cada servidor
contenedor ansible_ssh_host=192.168.1.100 ansible_ssh_user=ansible ansible_ssh_pass=ansible ansible_sudo_pass=ansible
[lxc]
apache-proxy ansible_ssh_host=192.168.1.102 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ansible_sudo_pass=
ldap-server ansible_ssh_host=192.168.1.103 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ansible_sudo_pass=
postgres-server ansible_ssh_host=192.168.1.104 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ansible_sudo_pass=
tomcat-general ansible_ssh_host=192.168.1.105 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ansible_sudo_pass=
tomcat-geonetwork ansible_ssh_host=192.168.1.106 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ansible_sudo_pass=
tomcat-geoserver ansible_ssh_host=192.168.1.107 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ansible_sudo_pass=
tomcat-proxy ansible_ssh_host=192.168.1.108 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ansible_sudo_pass=
~~~
#### Variables de roles
##### host/vars/main.yml
~~~
---
# apt
# modificar direccion del servidor dns para los repositorios
dns: 192.168.1.1
# modificar nombres de los repositorios, absent=eliminar, present=agregar
repositorios:
# modificar repositorio externo
- { nombre: "deb http://ftp.cl.debian.org/debian testing main contrib", estado: present }
# modificar repositorio interno
- { nombre: "deb http://repositorio.geo.gob.bo/ftp.us.debian.org/debian/ jessie main contrib non-free", estado: absent }
# NO modificar ya que estos paquetes son necesarios para el contenedor de lxc's
paquetes:
- { nombre: lxc, estado: latest }
- { nombre: bridge-utils, estado: latest }
- { nombre: libvirt-bin, estado: latest }
- { nombre: debootstrap, estado: latest }
- { nombre: git, estado: latest }
- { nombre: vagrant, estado: latest }
# red
# modificar la configuracion correspondiente al contenedor
direccion: 192.168.1.100
mascara: 255.255.255.0
pasarela: 192.168.1.1
puente_eth: eth0
puente_br: br0
~~~
##### crear-lxc/vars/main.yml
~~~
---
# servidor
# modificar segun los datos del inventario
servidor:
- { nombre: apache-proxy, ip: 192.168.1.102, pasarela: 192.168.1.1, mascara: 24, carpeta: /home/ansible }
- { nombre: ldap-server, ip: 192.168.1.103, pasarela: 192.168.1.1, mascara: 24, carpeta: /home/ansible }
- { nombre: postgres-server, p: 192.168.1.104, pasarela: 192.168.1.1, mascara: 24, carpeta: /home/ansible }
- { nombre: tomcat-general, ip: 192.168.1.105, pasarela: 192.168.1.1, mascara: 24, carpeta: /home/ansible }
- { nombre: tomcat-geonetwork, ip: 192.168.1.106, pasarela: 192.168.1.1, mascara: 24, carpeta: /home/ansible }
- { nombre: tomcat-geoserver, ip: 192.168.1.107, pasarela: 192.168.1.1, mascara: 24, carpeta: /home/ansible }
- { nombre: tomcat-proxy, ip: 192.168.1.108, pasarela: 192.168.1.1, mascara: 24, carpeta: /home/ansible }
~~~
##### configurar-lxc/vars/main.yml
~~~
---
# apt
# modificar direccion del servidor dns para los repositorios
dns: 192.168.1.1
# modificar nombres de los repositorios, absent=eliminar, present=agregar
repositorios:
# modificar repositorio externo
- { nombre: "deb http://ftp.cl.debian.org/debian testing main contrib", estado: present }
# modificar repositorio interno
- { nombre: "deb http://repositorio.geo.gob.bo/ftp.us.debian.org/debian/ jessie main contrib non-free", estado: absent }
~~~
##### apache-proxy/vars/main.yml
~~~
---
# apt
# NO modificar, paquetes necesarios para el servidor apache
paquetes:
- { nombre: apache2, estado: latest }
# apache
# modificar con los datos correspondientes
host_geoserver: 192.168.3.42
host_tomcat_proxy: 192.168.3.41
~~~
##### tomcat-proxy/vars/main.yml
~~~
---
# apt
# NO modificar, paquetes necesarios para el servidor tomcat
paquetes:
- { nombre: openjdk-7-jre, estado: latest }
- { nombre: openjdk-7-jdk, estado: latest }
- { nombre: tomcat7, estado: latest }
# tomcat
# modificar con los datos correspondientes
usuario_tomcat: tomcat7
grupo_tomcat: tomcat7
keystore_pass: password
keystore_archivo: /etc/tomcat-proxy/keystore
~~~
##### ldap-server/vars/main.yml
~~~
---
# apt
# NO modificar, paquetes necesarios para el servidor ldap
paquetes:
- { nombre: slapd, estado: latest }
- { nombre: ldap-utils, estado: latest }
- { nombre: git-core, estado: latest }
# ldap
# modificar con los datos correspondientes
path: /var/local/vagrant_lxc/ldap-server/
gitldap: git://github.com/georchestra/LDAP.git
dir_tmp_git: /var/tmp/ldap
ldap_dn: cn=admin,dc=georchestra,dc=org
~~~
##### postgres-server/vars/main.yml
~~~
---
# apt
# NO modificar, paquetes necesarios para el servidor postgresql
paquetes:
- { nombre: postgresql-9.4, estado: latest }
- { nombre: postgis, estado: latest }
~~~
##### tomcat-general/vars/main.yml
~~~
---
# apt
# NO modificar, paquetes necesarios para el servidor tomcat
paquetes:
- { nombre: openjdk-7-jre, estado: latest }
- { nombre: openjdk-7-jdk, estado: latest }
- { nombre: tomcat7, estado: latest }
- { nombre: libgdal-java, estado: latest }
# tomcat
# modificar con los datos correspondientes
keystore_pass: password
keystore_archivo: /etc/tomcat-general/keystore
usuario_tomcat: tomcat7
grupo_tomcat: tomcat7
~~~
##### tomcat-geonetwork/vars/main.yml
~~~
---
# apt
# NO modificar, paquetes necesarios para el servidor tomcat
paquetes:
- { nombre: openjdk-7-jre, estado: latest }
- { nombre: openjdk-7-jdk, estado: latest }
- { nombre: tomcat7, estado: latest }
# tomcat
# modificar con los datos correspondientes
keystore_pass: password
keystore_archivo: /etc/tomcat-geonetwork/keystore
usuario_tomcat: tomcat7
grupo_tomcat: tomcat7
~~~
##### tomcat-geoserver/vars/main.yml
~~~
---
# apt
# NO modificar, paquetes necesarios para el servidor tomcat
paquetes:
- { nombre: openjdk-7-jre, estado: latest }
- { nombre: openjdk-7-jdk, estado: latest }
- { nombre: tomcat7, estado: latest }
# tomcat
# modificar con los datos correspondientes
keystore_pass: password
keystore_archivo: /etc/tomcat-geoserver/keystore
usuario_tomcat: tomcat7
grupo_tomcat: tomcat7
jai: jai-1_1_3-lib-linux-amd64-jre.bin
jaiio: jai_imageio-1_1-lib-linux-amd64-jre.bin
~~~
#### Funcionamiento
Para el funcionamiento del playbook principal (play.yml) se necesita una máquina contenedora con un sistema operativo Debian en su versión ***Wheezy*** o ***Jessie*** y el paquete ***openssh*** previamente instalado, también crear un usuario con permisos de super-usuario, con el cual nos conectaremos mediante ssh desde nuestra PC.
En nuestra PC debemos modificar el archivo de *inventario* con la configuración que vayamos a utilizar. No es necesario modificar el archivo *ansible.cfg*, pero si se desea se puede modificar, siempre de acuerdo a la sintaxis definida en la página de [Ansible](http://docs.ansible.com/intro_configuration.html).
Después de haber modificado las variables mencionadas arriba de manera correcta se debe ejecutar el comando:
```sh
$ ansible-playbook play.yml
```
Si todo se configuró de manera correcta se obtendrá una máquina configurada para contener máquinas virtuales lxc, que en este caso son 7, cada una provee un diferente servicio.
\ No newline at end of file
# Configuración automatizada de servidores mediante Ansible y Vagrant
Este proyecto se enfoca en la automatización de procesos de instalación y configuración de un servidor que aloja varias máquinas virtuales de tipo lxc, cada lxc provee un servicio diferente.
Todo el proceso de instalación de paquetes y las diferentes configuraciones se las realiza mediante Ansible, mientras que la instalación de las máquinas virtuales se realiza con Vagrant, también por medio de Ansible.
### Características
El proceso es el siguiente:
- Configuración de la máquina principal o contenedora (rol host)
- Creación de las máquinas virutales lxc (rol crear-lxc)
- Configuración inicial de las máquinas lxc (rol configurar-lxc)
- Instalación y configuración servidor apache-proxy
- Instalación y configuración servidor ldap-server
- Instalación y configuración servidor postgres-server
- Instalación y configuración servidor tomcat-general
- Instalación y configuración servidor tomcat-geonetwork
- Instalación y configuración servidor tomcat-geoserver
- Instalación y configuración servidor tomcat-proxy
##### inventario
[[REF.]](http://docs.ansible.com/intro_inventory.html) Este archivo contiene la lista de todos las máquinas que vayamos a controlar, tambien podemos formar grupos según nuestra conveniencia. Un ejemplo de archivo de inventario es el siguiente:
~~~
[nombre_grupo]
nombre_maquina ansible_ssh_host=192.168.1.100 ansible_ssh_user=usuario1 ansible_ssh_pass=clave ansible_sudo_pass=secreto
[servidores]
servidor-apache ansible_ssh_host=192.168.1.101 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ansible_sudo_pass=
servidor-tomcat ansible_ssh_host=192.168.1.102 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ansible_sudo_pass=
servidor-x ansible_ssh_host=192.168.1.103
192.168.1.104
~~~
En el ejemplo anterior tenemos dos grupos de máquinas, y dos máquinas que no están incluidas en ningún grupo.
El primer grupo tiene el nombre de *nombre_grupo* y esta compuesto por una máquina cuyo nombre es ***máquina***, esta tiene la dirección ip ***192.168.1.101***, se accede a ella con el ***usuario1*** que tiene la contraseña ***clave***, cuya contraseña de super-usuario es ***secreto***.
El segundo grupo que lleva el nombre de ***servidores*** contiene dos máquinas, ***servidor-apache*** y ***servidor-tomcat***; estos tienen propiedades parecidas a la configuración anterior.
También tenemos dos máquinas que no pertenecen a ningún grupo. La primera tiene como nombre ***servidor-x*** y su dirección ip es ***192.168.1.103***. La segunda solo tiene como dato una dirección ip ***192.168.1.104***.
Como se puede observar el único dato imprecindible es el de la dirección ip, los otros se pueden solventar al momento de ejecutar algún comando ansible.
##### ansible.cfg
[[REF.]](http://docs.ansible.com/intro_configuration.html) Este archivo contiene los parámetros de configuración que utilizará ansible para ejecutar las diferentes tareas. Un ejemplo de configuración es el siguiente:
~~~
[defaults]
hostfile=/carpeta/contenedora/de/inventario
host_key_checking=False
~~~
Este archivo contiene la dirección en la que se encuentra el archivo de inventario, además se ha introducido la opción de ***host_key_checking*** con un valor de ***False***, esto sirve para evitar problemas de conexión por medio de ssh con servidores que no contienen nuestra llave ssh y nos vayamos a conectar por primera vez.
### Ejecución
Para poner a prueba nuestra instalación de ansible podemos ejecutar un comando simple, desde la carpeta que contiene el archivo ansible.cfg:
```sh
$ ansible servidores -m ping
```
Lo que hace este comando es probar la conexión entre nuestra máquina y el grupo de servidores, es decir ejecuta ping hacia el servidor-apache y servidor-tomcat.
La sintaxis es la siguiente:
*ansible* **grupo_o_nombre_de_host** *-m* **módulo** *-a* **parámetros** -**opciones**
Otro ejemplo más completo es el siguiente:
```sh
$ ansible 192.168.1.104 -m file -a "path=/nueva/carpeta/ state=directory" -K -u usuario --ask-pass
```
Lo que hace este comando es crear una carpeta mediante el módulo "file" en la direccion ***/nueva/carpeta***; pero además ejecutará esta orden con permisos de super-usuario mediante el comando ***-K***, y como no definimos el usuario ssh en el inventario usamos la opción *-u* ***nombre_de_usuario***, tampoco definimos la contraseña así que la pedimos mediante ***--ask-pass***.
#### Playbooks
Una manera más ordenada y fresca de realizar lo anterior es mediante los llamados playbooks, son archivos de texto en formato [YAML](http://docs.ansible.com/YAMLSyntax.html). Estos archivos realizan una serie de tareas y es en donde en realidad se puede ver el esplendor de Ansible ya que en ellos se pueden definir condicionales, bucles y reutilización de codigo. Un ejemplo de playbook que prueba la conexión mediante el módulo ping es el siguiente:
~~~
# Nombre del archivo: play.yml
- hosts: servidores
tasks:
- name: Probando conexion
ping:
~~~
Este archivo también debe estar en la misma carpeta que ansible.cfg y para ejecutarlo se utiliza:
```sh
$ ansible-playbook play.yml
```
Esto produce exactamente el mismo efecto que:
```sh
$ ansible servidores -m ping
```
Pero con la diferencia de que se puede ejecutar muchas veces y se queda grabado en un archivo que se puede utilizar en otros playbooks.
Los playbooks tambien aceptan las mismas opciones como por ejemplo *--ask-pass* o *-K*.
Un ejemplo algo más ambiocioso es el siguiente:
~~~
# Nombre del archivo: apache.yml
# Para ejecutarlo: ansible-playbook apache.yml
- hosts: servidores
tasks:
- name: Instalando apache2
apt:
name=apache2
state=latest
- name: Reiniciando servicio apache2
service:
name=apache2
state=restarted
~~~
Lo que hace este playbook es instalar apache2 en su última versión mediante el módulo apt, a continuación reinicia el servicio llamado también apache2.
La lista de los módulos disponibles en ansible se puede encontrar en [esta dirección](http://docs.ansible.com/modules_by_category.html).
#### Roles
Para trabajar de manera más profesional los creadores de ansible recomiendan una organización mediante carpetas, llamada roles. El árbol que debe crearse es el siguiente:
~~~
play.yml
inventario
ansible.cfg
roles/
rol/
tasks/
main.yml
handlers/
main.yml
templates/
archivo.j2
files/
otroArchivo
vars/
main.yml
defaults/
main.yml
meta/
main.yml
~~~
Las ventajas con esta configuración son muchas, las mas importantes son el ordén inherente en las carpetas; los modulos *file* y *template* ya no necesitan apuntar la ubicación del archivo que tratarán ya que estos se ubican en *files* y *templates* respectivamente, otra ventaja es que las variables se hallan en una archivo separado dentro de la carpeta *vars*, con lo que los archivos que contienen las tareas en *tasks* no necesitan ser modificados para nada.
Se puede usar la directiva **include** para ordenar mejor aún nuestros playbooks.
En este caso el archivo *play.yml* debera estar compuesto por roles en lugar de tareas, un ejemplo:
~~~
# Nombre del archivo: play.yml
# Para ejecutarlo: ansible-playbook play.yml
- hosts: servidores
sudo: yes
roles:
- rol
~~~
O en su defecto:
~~~
# Nombre del archivo: play.yml
# Para ejecutarlo: ansible-playbook play.yml
- hosts: servidores
roles:
- { role: rol, sudo: yes }
~~~
En el primer caso, si es que se ejecutaran mas roles, todos los harían como super-usuario; pero en el segundo caso se pueden ejecutar ciertos roles como por ejemplo instalacion de paquetes como super-usuario, mientras que otros se ejecutarían como un usuario normal cambiando la opción **sudo** a **no**, o bien eliminando esta opción.
La ejecución es como la de cualquier playbook y puede tomar las mismas opciones que los playbooks vistos anteriormente.
\ No newline at end of file
[defaults]
hostfile = /home/usuario/gitansible/ansible_vagrant/inventario
host_key_checking = False
---
###### variables para KVM
dns: 192.168.2.15
repositorios:
- { nombre: "deb http://ftp.cl.debian.org/debian testing main contrib", estado: present }
# red
direccion: 192.168.1.4
mascara: 255.255.255.0
pasarela: 192.168.1.15
puente_eth: eth0
puente_br: br0
dominio: mydomain.net
# Box que usara para levantar el LXC
carpeta_grupo: /home/ansible
caja: vagrant-lxc-jessie-amd64.box
# servidores a crear
servidor:
- { nombre: smtp-server, ip: 192.168.1.3, pasarela: 192.168.1.15, mascara: 24, carpeta: /home/ansible}
- { nombre: pydio-server, ip: 192.168.1.5, pasarela: 192.168.1.15, mascara: 24, carpeta: /home/ansible}
- { nombre: apache-proxy, ip: 192.168.1.6, pasarela: 192.168.1.15, mascara: 24, carpeta: /home/ansible}
- { nombre: ldap-server, ip: 192.168.1.7, pasarela: 192.168.1.15, mascara: 24, carpeta: /home/ansible}
- { nombre: postgres-server, ip: 192.168.1.8, pasarela: 192.168.1.15, mascara: 24, carpeta: /home/ansible}
- { nombre: tomcat-general, ip: 192.168.1.9, pasarela: 192.168.1.15, mascara: 24, carpeta: /home/ansible}
- { nombre: tomcat-geonetwork, ip: 192.168.1.10, pasarela: 192.168.1.15, mascara: 24, carpeta: /home/ansible}
- { nombre: tomcat-geoserver, ip: 192.168.1.11, pasarela: 192.168.1.15, mascara: 24, carpeta: /home/ansible}
- { nombre: tomcat-proxy, ip: 192.168.1.12, pasarela: 192.168.1.15, mascara: 24, carpeta: /home/ansible}
# apache
host_smtp_server: 192.168.1.3
host_pydio_server: 192.168.1.5
host_apache_proxy: 192.168.1.6
host_ldap_server: 192.168.1.7
host_postgres_server: 192.168.1.8
host_tomcat_general: 192.168.1.9
host_tomcat_geonetwork: 192.168.1.10
host_tomcat_geoserver: 192.168.1.11
host_tomcat_proxy: 192.168.1.12
#Contraseña para keystore
keystore_pass: password_keystore
[kvm]
contenedor ansible_ssh_host=192.168.1.4 ansible_ssh_user=ansible ansible_ssh_pass=ansible ansible_sudo_pass=ansible
[lxc]
smtp-server ansible_ssh_host=192.168.1.3 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ansible_sudo_pass=
pydio-server ansible_ssh_host=192.168.1.5 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ansible_sudo_pass=
apache-proxy ansible_ssh_host=192.168.1.6 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ansible_sudo_pass=
ldap-server ansible_ssh_host=192.168.1.7 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ansible_sudo_pass=
postgres-server ansible_ssh_host=192.168.1.8 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ansible_sudo_pass=
tomcat-general ansible_ssh_host=192.168.1.9 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ansible_sudo_pass=
tomcat-geonetwork ansible_ssh_host=192.168.1.10 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ansible_sudo_pass=
tomcat-geoserver ansible_ssh_host=192.168.1.11 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ansible_sudo_pass=
tomcat-proxy ansible_ssh_host=192.168.1.12 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ansible_sudo_pass=
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/htdocs
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
#include specific georchestra conf
Include /var/www/conf/georchestra.conf
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/htdocs
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
#include specific georchestra conf
Include /var/www/conf/georchestra.conf
</VirtualHost>
</IfModule>
---
- name: Limpiar apt
command: "apt-get clean"
---
- include: apt.yml
\ No newline at end of file
---
tasks:
- meta: flush_handlers
---
- name: Habilitando modulos
command: "a2enmod proxy_ajp rewrite proxy ssl"
- name: Habilitando sitios
command: "a2ensite default-ssl"
- name: Configurando 80 apache
copy:
src=000-default.conf
dest=/etc/apache2/sites-available/
mode=644
- name: Configurando apache por el puerto 443
copy:
src=default-ssl.conf
dest=/etc/apache2/sites-available/
mode=644
- name: Creando directorio conf
file: