Added all files
This commit is contained in:
8
examples/010_templates/control.yml
Normal file
8
examples/010_templates/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/010_templates/database.yml
Normal file
9
examples/010_templates/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/010_templates/demo/app/demo.py
Normal file
20
examples/010_templates/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/010_templates/demo/app/demo.wsgi
Normal file
10
examples/010_templates/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/010_templates/demo/app/requirements.txt
Normal file
9
examples/010_templates/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/010_templates/demo/demo.conf
Normal file
11
examples/010_templates/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>
|
||||
25
examples/010_templates/loadbalancer.yml
Normal file
25
examples/010_templates/loadbalancer.yml
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
- 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
|
||||
|
||||
- name: configure nginx site
|
||||
template: src=templates/nginx.conf.j2 dest=/etc/nginx/sites-available/demo mode=0644
|
||||
notify: restart nginx
|
||||
|
||||
- name: de-activate default nginx site
|
||||
file: path=/etc/nginx/sites-enabled/default state=absent
|
||||
notify: restart nginx
|
||||
|
||||
- name: activate demo nginx site
|
||||
file: src=/etc/nginx/sites-available/demo dest=/etc/nginx/sites-enabled/demo state=link
|
||||
notify: restart nginx
|
||||
|
||||
handlers:
|
||||
- name: restart nginx
|
||||
service: name=nginx state=restarted
|
||||
5
examples/010_templates/playbook/hostname.yml
Normal file
5
examples/010_templates/playbook/hostname.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
- hosts: all
|
||||
tasks:
|
||||
- name: get server hostname
|
||||
command: hostname
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
- hosts: loadbalancer
|
||||
become: true
|
||||
tasks:
|
||||
- name: ensure nginx started
|
||||
service: name=nginx state=started enabled=yes
|
||||
|
||||
- name: de-activate demo nginx site
|
||||
file: path=/etc/nginx/sites-enabled/demo state=absent
|
||||
notify: restart nginx
|
||||
|
||||
- name: activate default nginx site
|
||||
file: src=/etc/nginx/sites-available/default dest=/etc/nginx/sites-enabled/default state=link
|
||||
notify: restart nginx
|
||||
|
||||
handlers:
|
||||
- name: restart nginx
|
||||
service: name=nginx state=restarted
|
||||
137
examples/010_templates/playbook/nginx-default.conf
Normal file
137
examples/010_templates/playbook/nginx-default.conf
Normal file
@@ -0,0 +1,137 @@
|
||||
|
||||
#user nobody;
|
||||
#Defines which Linux system user will own and run the Nginx server
|
||||
|
||||
worker_processes 1;
|
||||
#Referes to single threaded process. Generally set to be equal to the number of CPUs or cores.
|
||||
|
||||
#error_log logs/error.log; #error_log logs/error.log notice;
|
||||
#Specifies the file where server logs.
|
||||
|
||||
#pid logs/nginx.pid;
|
||||
#nginx will write its master process ID(PID).
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
# worker_processes and worker_connections allows you to calculate maxclients value:
|
||||
# max_clients = worker_processes * worker_connections
|
||||
}
|
||||
|
||||
|
||||
http {
|
||||
include mime.types;
|
||||
# anything written in /opt/nginx/conf/mime.types is interpreted as if written inside the http { } block
|
||||
|
||||
default_type application/octet-stream;
|
||||
#
|
||||
|
||||
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||
# '$status $body_bytes_sent "$http_referer" '
|
||||
# '"$http_user_agent" "$http_x_forwarded_for"';
|
||||
|
||||
#access_log logs/access.log main;
|
||||
|
||||
sendfile on;
|
||||
# If serving locally stored static files, sendfile is essential to speed up the server,
|
||||
# But if using as reverse proxy one can deactivate it
|
||||
|
||||
#tcp_nopush on;
|
||||
# works opposite to tcp_nodelay. Instead of optimizing delays, it optimizes the amount of data sent at once.
|
||||
|
||||
#keepalive_timeout 0;
|
||||
keepalive_timeout 65;
|
||||
# timeout during which a keep-alive client connection will stay open.
|
||||
|
||||
#gzip on;
|
||||
# tells the server to use on-the-fly gzip compression.
|
||||
|
||||
server {
|
||||
# You would want to make a separate file with its own server block for each virtual domain
|
||||
# on your server and then include them.
|
||||
listen 80;
|
||||
#tells Nginx the hostname and the TCP port where it should listen for HTTP connections.
|
||||
# listen 80; is equivalent to listen *:80;
|
||||
|
||||
server_name localhost;
|
||||
# lets you doname-based virtual hosting
|
||||
|
||||
#charset koi8-r;
|
||||
|
||||
#access_log logs/host.access.log main;
|
||||
|
||||
location / {
|
||||
#The location setting lets you configure how nginx responds to requests for resources within the server.
|
||||
root html;
|
||||
index index.html index.htm;
|
||||
}
|
||||
|
||||
#error_page 404 /404.html;
|
||||
|
||||
# redirect server error pages to the static page /50x.html
|
||||
#
|
||||
error_page 500 502 503 504 /50x.html;
|
||||
location = /50x.html {
|
||||
root html;
|
||||
}
|
||||
|
||||
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
|
||||
#
|
||||
#location ~ \.php$ {
|
||||
# proxy_pass http://127.0.0.1;
|
||||
#}
|
||||
|
||||
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
|
||||
#
|
||||
#location ~ \.php$ {
|
||||
# root html;
|
||||
# fastcgi_pass 127.0.0.1:9000;
|
||||
# fastcgi_index index.php;
|
||||
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
|
||||
# include fastcgi_params;
|
||||
#}
|
||||
|
||||
# deny access to .htaccess files, if Apache's document root
|
||||
# concurs with nginx's one
|
||||
#
|
||||
#location ~ /\.ht {
|
||||
# deny all;
|
||||
#}
|
||||
}
|
||||
|
||||
|
||||
# another virtual host using mix of IP-, name-, and port-based configuration
|
||||
#
|
||||
#server {
|
||||
# listen 8000;
|
||||
# listen somename:8080;
|
||||
# server_name somename alias another.alias;
|
||||
|
||||
# location / {
|
||||
# root html;
|
||||
# index index.html index.htm;
|
||||
# }
|
||||
#}
|
||||
|
||||
|
||||
# HTTPS server
|
||||
#
|
||||
#server {
|
||||
# listen 443 ssl;
|
||||
# server_name localhost;
|
||||
|
||||
# ssl_certificate cert.pem;
|
||||
# ssl_certificate_key cert.key;
|
||||
|
||||
# ssl_session_cache shared:SSL:1m;
|
||||
# ssl_session_timeout 5m;
|
||||
|
||||
# ssl_ciphers HIGH:!aNULL:!MD5;
|
||||
# ssl_prefer_server_ciphers on;
|
||||
|
||||
# location / {
|
||||
# root html;
|
||||
# index index.html index.htm;
|
||||
# }
|
||||
#}
|
||||
|
||||
}
|
||||
36
examples/010_templates/playbook/nginx-default.html
Normal file
36
examples/010_templates/playbook/nginx-default.html
Normal file
@@ -0,0 +1,36 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Welcome to nginx on Debian!</title>
|
||||
<style>
|
||||
body {
|
||||
width: 35em;
|
||||
margin: 0 auto;
|
||||
font-family: Tahoma, Verdana, Arial, sans-serif;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Welcome to nginx on Debian!</h1>
|
||||
<p>If you see this page, the nginx web server is successfully installed and
|
||||
working on Debian. Further configuration is required.</p>
|
||||
|
||||
<p>For online documentation and support please refer to
|
||||
<a href="http://nginx.org/">nginx.org</a></p>
|
||||
|
||||
<p>
|
||||
Please use the <tt>reportbug</tt> tool to report bugs in the
|
||||
nginx package with Debian. However, check <a
|
||||
href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?ordering=normal;archive=0;src=nginx;repeatmerged=0">existing
|
||||
bug reports</a> before reporting a new bug.
|
||||
</p>
|
||||
|
||||
<p><em>Thank you for using debian and nginx.</em></p>
|
||||
|
||||
<h2><a href="SCRIPT/BackupPi_2">BackupPi_2</a></h2>
|
||||
<h2><a href="SCRIPT/monitor/index.php?serial_id=0000000000000000">monitor</a></h2>
|
||||
<h2><a href="SCRIPT/say/say.php">say</a></h2>
|
||||
<h2><a href="SCRIPT/sdt/dt.php">Set DateTime</a></h2>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
28
examples/010_templates/playbook/stack_restart.yml
Normal file
28
examples/010_templates/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
|
||||
13
examples/010_templates/templates/nginx.conf.j2
Normal file
13
examples/010_templates/templates/nginx.conf.j2
Normal file
@@ -0,0 +1,13 @@
|
||||
upstream demo {
|
||||
{% for server in groups.webserver %}
|
||||
server {{ server }};
|
||||
{% endfor %}
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
|
||||
location / {
|
||||
proxy_pass http://demo;
|
||||
}
|
||||
}
|
||||
42
examples/010_templates/webserver.yml
Normal file
42
examples/010_templates/webserver.yml
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
- 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
|
||||
|
||||
- name: copy demo app source
|
||||
copy: src=demo/app/ dest=/var/www/demo mode=0755
|
||||
notify: restart apache2
|
||||
|
||||
- name: copy apache virtual host config
|
||||
copy: src=demo/demo.conf dest=/etc/apache2/sites-available mode=0755
|
||||
notify: restart apache2
|
||||
|
||||
- name: setup python virtualenv
|
||||
pip: requirements=/var/www/demo/requirements.txt virtualenv=/var/www/demo/.venv
|
||||
notify: restart apache2
|
||||
|
||||
- name: de-activate default apache site
|
||||
file: path=/etc/apache2/sites-enabled/000-default.conf state=absent
|
||||
notify: restart apache2
|
||||
|
||||
- name: activate demo apache site
|
||||
file: src=/etc/apache2/sites-available/demo.conf dest=/etc/apache2/sites-enabled/demo.conf state=link
|
||||
notify: restart apache2
|
||||
|
||||
handlers:
|
||||
- name: restart apache2
|
||||
service: name=apache2 state=restarted
|
||||
Reference in New Issue
Block a user