Added all files
This commit is contained in:
8
examples/006_notify_handlers/control.yml
Normal file
8
examples/006_notify_handlers/control.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
- hosts: control
|
||||
become: true
|
||||
tasks:
|
||||
- name: install tools
|
||||
apt: name={{item}} state=present update_cache=yes
|
||||
with_items:
|
||||
- curl
|
||||
9
examples/006_notify_handlers/database.yml
Normal file
9
examples/006_notify_handlers/database.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
- hosts: database
|
||||
become: true
|
||||
tasks:
|
||||
- name: install mysql-server
|
||||
apt: name=mysql-server state=present update_cache=yes
|
||||
|
||||
- name: ensure mysql started
|
||||
service: name=mysql state=started enabled=yes
|
||||
20
examples/006_notify_handlers/demo/app/demo.py
Normal file
20
examples/006_notify_handlers/demo/app/demo.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from flask import Flask
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
import os, socket
|
||||
|
||||
app = Flask(__name__)
|
||||
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ['DATABASE_URI']
|
||||
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
||||
db = SQLAlchemy(app)
|
||||
hostname = socket.gethostname()
|
||||
|
||||
@app.route('/')
|
||||
def index():
|
||||
return 'Hello, from sunny %s!\n' % hostname
|
||||
|
||||
@app.route('/db')
|
||||
def dbtest():
|
||||
return 'Database Connected from %s!\n' % hostname
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run()
|
||||
10
examples/006_notify_handlers/demo/app/demo.wsgi
Normal file
10
examples/006_notify_handlers/demo/app/demo.wsgi
Normal file
@@ -0,0 +1,10 @@
|
||||
activate_this = '/var/www/demo/.venv/bin/activate_this.py'
|
||||
exec(open(activate_this).read(), {'__file__': activate_this})
|
||||
|
||||
import os
|
||||
os.environ['DATABASE_URI'] = 'mysql://demo:demo@db01/demo'
|
||||
|
||||
import sys
|
||||
sys.path.insert(0, '/var/www/demo')
|
||||
|
||||
from demo import app as application
|
||||
9
examples/006_notify_handlers/demo/app/requirements.txt
Normal file
9
examples/006_notify_handlers/demo/app/requirements.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
click==7.1.2
|
||||
Flask==1.1.4
|
||||
Flask-SQLAlchemy==2.5.1
|
||||
greenlet==1.1.2
|
||||
itsdangerous==1.1.0
|
||||
Jinja2==2.11.3
|
||||
MarkupSafe==2.0.1
|
||||
SQLAlchemy==1.4.32
|
||||
Werkzeug==1.0.1
|
||||
11
examples/006_notify_handlers/demo/demo.conf
Normal file
11
examples/006_notify_handlers/demo/demo.conf
Normal file
@@ -0,0 +1,11 @@
|
||||
<VirtualHost *>
|
||||
WSGIDaemonProcess demo threads=5
|
||||
WSGIScriptAlias / /var/www/demo/demo.wsgi
|
||||
|
||||
<Directory /var/www/demo>
|
||||
WSGIProcessGroup demo
|
||||
WSGIApplicationGroup %{GLOBAL}
|
||||
Order deny,allow
|
||||
Allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
9
examples/006_notify_handlers/loadbalancer.yml
Normal file
9
examples/006_notify_handlers/loadbalancer.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
- hosts: loadbalancer
|
||||
become: true
|
||||
tasks:
|
||||
- name: install nginx
|
||||
apt: name=nginx state=present update_cache=yes
|
||||
|
||||
- name: ensure nginx started
|
||||
service: name=nginx state=started enabled=yes
|
||||
5
examples/006_notify_handlers/playbook/hostname.yml
Normal file
5
examples/006_notify_handlers/playbook/hostname.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
- hosts: all
|
||||
tasks:
|
||||
- name: get server hostname
|
||||
command: hostname
|
||||
28
examples/006_notify_handlers/playbook/stack_restart.yml
Normal file
28
examples/006_notify_handlers/playbook/stack_restart.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
# Bring stack down
|
||||
- hosts: loadbalancer
|
||||
become: true
|
||||
tasks:
|
||||
- service: name=nginx state=stopped
|
||||
|
||||
- hosts: webserver
|
||||
become: true
|
||||
tasks:
|
||||
- service: name=apache2 state=stopped
|
||||
|
||||
# Restart mysql
|
||||
- hosts: database
|
||||
become: true
|
||||
tasks:
|
||||
- service: name=mysql state=restarted
|
||||
|
||||
# Bring stack up
|
||||
- hosts: webserver
|
||||
become: true
|
||||
tasks:
|
||||
- service: name=apache2 state=started
|
||||
|
||||
- hosts: loadbalancer
|
||||
become: true
|
||||
tasks:
|
||||
- service: name=nginx state=started
|
||||
22
examples/006_notify_handlers/webserver.yml
Normal file
22
examples/006_notify_handlers/webserver.yml
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
- hosts: webserver
|
||||
become: true
|
||||
tasks:
|
||||
- name: install web components
|
||||
apt: name={{item}} state=present update_cache=yes
|
||||
with_items:
|
||||
- apache2
|
||||
- libapache2-mod-wsgi-py3
|
||||
- python-pip-whl
|
||||
- python3-virtualenv
|
||||
|
||||
- name: ensure apache2 started
|
||||
service: name=apache2 state=started enabled=yes
|
||||
|
||||
- name: ensure mod_wsgi enabled
|
||||
apache2_module: state=present name=wsgi
|
||||
notify: restart apache2
|
||||
|
||||
handlers:
|
||||
- name: restart apache2
|
||||
service: name=apache2 state=restarted
|
||||
Reference in New Issue
Block a user