Ansible: Crear página web WordPress
Hoy vamos a generar una página web con Ansible, basada en WordPress.
La idea es que tengamos el servidor de mysql y apache en el mismo servidor. Voy a preparar la máquina con los repos necesarios. Os dejo como hacerlo con Ansible:
Agregar repo: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/yum_repository_module.html
Necesitaremos ciertas versiones php para WordPress trabaje:
1 2 3 4 5 6 7 8 9 10 11 |
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm rpm -Uvh mysql80-community-release-el7-3.noarch.rpm yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm yum install yum-utils yum-config-manager --enable remi-php56 yum-config-manager --enable remi-php56 |
Lo primero que haremos en crear el fichero host con la máquina virtual que usaremos:
1 2 3 |
[root@TERRAFORM ansible]# nano inventory/wordpress [wordpress] nginx ansible_ssh_host=192.168.2.36 |
Fichero de instalación en Ansible:
https://gist.github.com/raulunzue/wordpress-ansible.yml
[root@TERRAFORM ansible]# nano playbooks/wordpress-ansible.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
--- # Entrada El Blog de Negu: https://www.maquinasvirtuales.eu/ansible-crear-pagina-web-wordpress/ - name: Ansible Wordpress hosts: wordpress become: yes vars: wp_mysql_db: wordpress wp_mysql_user: wp-admin wp_mysql_password: elblogdenegu wp_mysql_host: "{{ansible_default_ipv4.address}}" tasks: - name: Instalacion LAMP Stack yum: name={{ item }} state=present with_items: - httpd - mysql-server - php56 - php-mysqlnd - MySQL-python - name: Borrar pagina de bienvenida en httpd file: path: "/etc/httpd/conf.d/welcome.conf" state: absent - name: Descarga de Wordpress unarchive: src: http://www.wordpress.org/latest.tar.gz dest: /var/www/html/ remote_src: yes - name: Renombrar fichero de configuracion de ejemplo command: "mv /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php" - name: Modificamos valores fichero wp-config.php lineinfile: dest=/var/www/html/wordpress/wp-config.php regexp={{ item.regexp }} line={{ item.line }} with_items: - {'regexp': "define\\( 'DB_NAME', '(database_name_here)+' \\);", 'line': "define('DB_NAME', '{{wp_mysql_db}}');"} - {'regexp': "define\\( 'DB_USER', '(username_here)+' \\);", 'line': "define('DB_USER', '{{wp_mysql_user}}');"} - {'regexp': "define\\( 'DB_PASSWORD', '(password_here)+' \\);", 'line': "define('DB_PASSWORD', '{{wp_mysql_password}}');"} - {'regexp': "define\\( 'DB_HOST', '(localhost)+' \\);", 'line': "define('DB_HOST', '{{wp_mysql_host}}');"} - name: Actualizamos configuracion Apache lineinfile: dest=/etc/httpd/conf/httpd.conf line="DocumentRoot /var/www/html/wordpress" - name: Arrancamos mysql service: name: mysqld state: started - name: Creamos la base de datos mysql_db: name: "{{wp_mysql_db}}" login_unix_socket: /run/mysqld/mysqld.sock state: present - name: Creamos usuario de gestión BD mysql_user: name: "{{wp_mysql_user}}" password: "{{wp_mysql_password}}" host: '%' priv: '*.*:ALL' state: present - name: Arrancamos httpd y mysql service: name={{ item }} state=restarted with_items: - httpd - mysqld ... |
Lo ejecutamos:
1 |
[root@TERRAFORM ansible]# ansible-playbook playbooks/wordpress-ansible.yml -i inventory/wordpress |
Una vez finalice tendremos acceso a nuestro WordPress.
¿Te ha gustado la entrada SÍGUENOS EN TWITTER?
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?