-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.yml
132 lines (119 loc) · 2.75 KB
/
config.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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
---
- name: deploy servers
hosts: localhost
gather_facts: no
vars:
target_environment: aws
tasks:
- import_tasks: aws_deploy.yml
when: target_environment == "aws"
- import_tasks: eec_deploy.yml
when: target_environment == "eec"
- name: inspect variables
debug:
var: tf_results
- name: set database facts
hosts: wordpress-db
gather_facts: false
tasks:
- name: set facts
set_fact:
ansible_host: "{{ hostvars['localhost'].tf_results.outputs.wordpress_db_address.value }}"
cacheable: yes
- name: set app facts
hosts: wordpress-app
gather_facts: false
tasks:
- name: set facts
set_fact:
ansible_host: "{{ hostvars['localhost'].tf_results.outputs.wordpress_app_address.value }}"
ext_url: "wordpress.domain.com"
db_address: "{{ hostvars['localhost'].tf_results.outputs.wordpress_db_private_address.value }}"
cacheable: yes
- name: wait for provisioning to complete
hosts: all
gather_facts: false
tasks:
- name: wait for server provisioning to complete
wait_for_connection:
timeout: 90
delay: 10
- name: apt update
hosts: all
become: yes
tasks:
- name: run apt update
apt:
update_cache: yes
- name: configure database
hosts: wordpress-db
become: true
gather_facts: true
vars:
mysql_databases:
- name: wordpress
mysql_users:
- name: wordpress
host: '%'
password: wordpress
priv: '*.*:ALL'
state: present
roles:
- role: geerlingguy.mysql
become: yes
- name: install app server packages
hosts: wordpress-app
gather_facts: true
become: yes
tasks:
- name: install php
apt:
update_cache: yes
name:
- php
- php7.0-mysql
- libapache2-mod-php
- mysql-client
state: present
- name: install apache
hosts: wordpress-app
gather_facts: true
become: true
vars:
apache_mods_enabled:
- rewrite.load
- ssl.load
apache_listen_port: 80
apache_vhosts:
- servername: "{{ ansible_facts['ext_url'] }}"
serveralias: "*"
documentroot: "/var/www"
roles:
- role: geerlingguy.apache
- name: configure wordpress
hosts: wordpress-app
become: true
gather_facts: true
vars:
wordpress_installs:
- name: wordpress
dbname: wordpress
dbuser: wordpress
dbpass: wordpress
dbhost: "{{ ansible_facts['db_address'] }}"
path: /var/www
url: "{{ ansible_facts['ext_url'] }}"
title: example-app
admin_name: admin
admin_email: [email protected]
admin_password: wordpress
themes:
- name: twentytwelve
activate: true
- name: twentythirteen
plugins: []
users: {}
options: []
queries: []
roles:
- role: oefenweb.wordpress