interop-workloads/workloads/ansible/shade/lampstack/roles/webserver/tasks/main.yml

160 lines
4.0 KiB
YAML
Executable File

---
- name: Apache and php 5
package:
name="{{ item }}"
state=latest
update_cache=yes
with_items:
- apache2
- php5
- php5-mysql
- php5-gd
- nfs-common
- unzip
- ssmtp
when: ansible_distribution == 'Ubuntu' and ansible_distribution_version < '16.04'
- name: Apache and php 7
package:
name="{{ item }}"
state=latest
update_cache=yes
with_items:
- apache2
- php7.0
- php7.0-mysql
- libapache2-mod-php7.0
- php7.0-cli
- php7.0-cgi
- php7.0-gd
- nfs-common
- unzip
- ssmtp
when: ansible_distribution == 'Ubuntu' and ansible_distribution_version >= '16.04'
- name: Apache and php 5
package:
name="{{ item }}"
state=latest
with_items:
- httpd
- php
- php-mysqlnd
- php5-gd
- nfs-utils
- unzip
- ssmtp
when: ansible_distribution == 'Fedora'
- shell: rm -rf /var/www/html/index.html
args:
warn: no
- name: Enable mod_rewrite
apache2_module: name=rewrite state=present
- name: Enable htaccess
blockinfile:
dest: /etc/apache2/sites-enabled/000-default.conf
insertafter: "DocumentRoot /var/www/html"
content: |
<Directory /var/www/html>
AllowOverride All
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
</Directory>
- name: Creates share directory for wpcontent
file:
path: /var/www/html/wp-content
state: directory
owner: www-data
group: www-data
when: ansible_distribution == 'Ubuntu'
- name: Creates share directory for wpcontent
file:
path: /var/www/html/wp-content
state: directory
owner: apache
group: apache
when: ansible_distribution == 'Fedora'
- name: Mount the directory using private IP
mount:
name: /var/www/html/wp-content
src: "{{ hostvars[groups['dbservers'][0]].inter_ip }}:/storage/wpcontent"
state: mounted
fstype: nfs
- lineinfile: dest=/etc/apache2/apache2.conf line="ServerName localhost"
when: ansible_distribution == 'Ubuntu'
- lineinfile: dest=/etc/httpd/conf/httpd.conf line="ServerName localhost"
when: ansible_distribution == 'Fedora'
- name: Download wordpress
get_url:
url: "{{ app_env.wp_latest | default('https://wordpress.org/wordpress-4.6.1.tar.gz') }}"
dest: /var/www/latest.tar.gz
force: no
- name: Unpack latest wordpress
shell: tar -xf /var/www/latest.tar.gz -C /var/www/html --strip-components=1
args:
warn: no
- name: Create wordpress configuration
shell: cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php
args:
warn: no
- name: Configure wordpress database, username and password
replace:
dest: /var/www/html/wp-config.php
regexp: "'{{ item.then }}'"
replace: "'{{ item.now }}'"
backup: no
with_items:
- { then: 'database_name_here', now: 'decision2016' }
- { then: 'username_here', now: "{{ db_user }}" }
- { then: 'password_here', now: "{{ db_pass }}" }
no_log: True
- name: Configure wordpress network access using private IP
replace:
dest: /var/www/html/wp-config.php
regexp: "'localhost'"
replace: "'{{ hostvars[groups['dbservers'][0]].inter_ip }}'"
backup: no
- name: Change ownership of wordpress
shell: chown -R www-data:www-data /var/www/html
args:
warn: no
when: ansible_distribution == 'Ubuntu'
- name: Change ownership of wordpress
shell: chown -R apache:apache /var/www/html
args:
warn: no
when: ansible_distribution == 'Fedora'
- service: name=apache2 state=restarted enabled=yes
when: ansible_distribution == 'Ubuntu'
- service: name=httpd state=restarted enabled=yes
when: ansible_distribution == 'Fedora'
- name: Install wordpress command line tool
copy:
src: files/wp-cli.phar
dest: /usr/local/bin/wp
mode: "a+x"
force: no