add libravatar playbooks
This commit is contained in:
parent
592fffe808
commit
927b108466
11 changed files with 244 additions and 0 deletions
|
@ -57,6 +57,8 @@ java-deptools.fedorainfracloud.org
|
||||||
simple-koji-ci-dev.fedorainfracloud.org
|
simple-koji-ci-dev.fedorainfracloud.org
|
||||||
simple-koji-ci-prod.fedorainfracloud.org
|
simple-koji-ci-prod.fedorainfracloud.org
|
||||||
lists-dev.fedorainfracloud.org
|
lists-dev.fedorainfracloud.org
|
||||||
|
libravatar.fedorainfracloud.org
|
||||||
|
libravatar-stg.fedorainfracloud.org
|
||||||
magazine2.fedorainfracloud.org
|
magazine2.fedorainfracloud.org
|
||||||
ppc64le-test.fedorainfracloud.org
|
ppc64le-test.fedorainfracloud.org
|
||||||
ppc64-test.fedorainfracloud.org
|
ppc64-test.fedorainfracloud.org
|
||||||
|
|
19
inventory/host_vars/libravatar-stg.fedorainfracloud.org
Normal file
19
inventory/host_vars/libravatar-stg.fedorainfracloud.org
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
---
|
||||||
|
instance_type: m1.medium
|
||||||
|
image: "{{ fedora28_x86_64 }}"
|
||||||
|
keypair: fedora-admin-20130801
|
||||||
|
security_group: web-80-anywhere-persistent,web-443-anywhere-persistent,ssh-anywhere-persistent,default,all-icmp-persistent
|
||||||
|
zone: nova
|
||||||
|
hostbase: libravatar-stg-
|
||||||
|
public_ip: 209.132.184.139
|
||||||
|
root_auth_users: clime
|
||||||
|
description: libravatar staging server
|
||||||
|
tcp_ports: ['22', '80', '443']
|
||||||
|
# volumes: libravatar-data
|
||||||
|
volumes: [ {volume_id: 'a000b415-7720-417f-ae07-67c42c22c604', device: '/dev/vdb'} ]
|
||||||
|
inventory_tenant: persistent
|
||||||
|
# name of machine in OpenStack
|
||||||
|
inventory_instance_name: libravatar-stg
|
||||||
|
cloud_networks:
|
||||||
|
# persistent-net
|
||||||
|
- net-id: "67b77354-39a4-43de-b007-bb813ac5c35f"
|
19
inventory/host_vars/libravatar.fedorainfracloud.org
Normal file
19
inventory/host_vars/libravatar.fedorainfracloud.org
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
---
|
||||||
|
instance_type: ms1.large
|
||||||
|
image: "{{ fedora28_x86_64 }}"
|
||||||
|
keypair: fedora-admin-20130801
|
||||||
|
security_group: web-80-anywhere-persistent,web-443-anywhere-persistent,ssh-anywhere-persistent,default,all-icmp-persistent
|
||||||
|
zone: nova
|
||||||
|
hostbase: libravatar-
|
||||||
|
public_ip: 209.132.184.138
|
||||||
|
root_auth_users: clime
|
||||||
|
description: libravatar production server
|
||||||
|
tcp_ports: ['22', '80', '443']
|
||||||
|
# volumes: libravatar-data
|
||||||
|
volumes: [ {volume_id: '50141ea0-9d3f-41bd-a78a-f902bb6a99c2', device: '/dev/vdb'} ]
|
||||||
|
inventory_tenant: persistent
|
||||||
|
# name of machine in OpenStack
|
||||||
|
inventory_instance_name: libravatar
|
||||||
|
cloud_networks:
|
||||||
|
# persistent-net
|
||||||
|
- net-id: "67b77354-39a4-43de-b007-bb813ac5c35f"
|
|
@ -781,6 +781,7 @@ kerneltest01.stg.phx2.fedoraproject.org
|
||||||
koji01.stg.phx2.fedoraproject.org
|
koji01.stg.phx2.fedoraproject.org
|
||||||
koschei-backend01.stg.phx2.fedoraproject.org
|
koschei-backend01.stg.phx2.fedoraproject.org
|
||||||
koschei-web01.stg.phx2.fedoraproject.org
|
koschei-web01.stg.phx2.fedoraproject.org
|
||||||
|
libravatar-stg.fedorainfracloud.org
|
||||||
loopabull01.stg.phx2.fedoraproject.org
|
loopabull01.stg.phx2.fedoraproject.org
|
||||||
mailman01.stg.phx2.fedoraproject.org
|
mailman01.stg.phx2.fedoraproject.org
|
||||||
mbs-backend01.stg.phx2.fedoraproject.org
|
mbs-backend01.stg.phx2.fedoraproject.org
|
||||||
|
@ -1198,6 +1199,8 @@ telegram-irc.fedorainfracloud.org
|
||||||
# Happiness packets
|
# Happiness packets
|
||||||
happinesspackets.fedorainfracloud.org
|
happinesspackets.fedorainfracloud.org
|
||||||
happinesspackets-stg.fedorainfracloud.org
|
happinesspackets-stg.fedorainfracloud.org
|
||||||
|
libravatar.fedorainfracloud.org
|
||||||
|
libravatar-stg.fedorainfracloud.org
|
||||||
|
|
||||||
#
|
#
|
||||||
# These are in the new cloud
|
# These are in the new cloud
|
||||||
|
@ -1314,6 +1317,12 @@ copr-back-dev
|
||||||
copr-keygen-dev
|
copr-keygen-dev
|
||||||
copr-dist-git-dev
|
copr-dist-git-dev
|
||||||
|
|
||||||
|
[libravatar]
|
||||||
|
libravatar.fedorainfracloud.org
|
||||||
|
|
||||||
|
[libravatar-stg]
|
||||||
|
libravatar-stg.fedorainfracloud.org
|
||||||
|
|
||||||
[pagure]
|
[pagure]
|
||||||
pagure01.fedoraproject.org
|
pagure01.fedoraproject.org
|
||||||
|
|
||||||
|
|
37
playbooks/groups/libravatar.yml
Normal file
37
playbooks/groups/libravatar.yml
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
- name: check/create instance
|
||||||
|
hosts: libravatar-stg:libravatar
|
||||||
|
gather_facts: False
|
||||||
|
|
||||||
|
vars_files:
|
||||||
|
- /srv/web/infra/ansible/vars/global.yml
|
||||||
|
- /srv/private/ansible/vars.yml
|
||||||
|
- /srv/web/infra/ansible/vars/fedora-cloud.yml
|
||||||
|
- /srv/private/ansible/files/openstack/passwords.yml
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- import_tasks: "{{ tasks_path }}/persistent_cloud.yml"
|
||||||
|
|
||||||
|
- name: cloud basic setup
|
||||||
|
hosts: libravatar-stg:libravatar
|
||||||
|
gather_facts: True
|
||||||
|
vars_files:
|
||||||
|
- /srv/web/infra/ansible/vars/global.yml
|
||||||
|
- /srv/private/ansible/vars.yml
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- import_tasks: "{{ tasks_path }}/cloud_setup_basic.yml"
|
||||||
|
- import_tasks: "{{ tasks_path }}/yumrepos.yml"
|
||||||
|
|
||||||
|
- name: provision instance
|
||||||
|
hosts: libravatar-stg:libravatar
|
||||||
|
gather_facts: True
|
||||||
|
|
||||||
|
vars_files:
|
||||||
|
- /srv/web/infra/ansible/vars/global.yml
|
||||||
|
- /srv/private/ansible/vars.yml
|
||||||
|
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
|
||||||
|
|
||||||
|
roles:
|
||||||
|
- base
|
||||||
|
- libravatar
|
||||||
|
- { role: letsencrypt, site_name: {{ inventory_hostname }} }
|
1
roles/libravatar/files/httpd/welcome.conf
Normal file
1
roles/libravatar/files/httpd/welcome.conf
Normal file
|
@ -0,0 +1 @@
|
||||||
|
# empty
|
9
roles/libravatar/files/pg/pg_hba.conf
Normal file
9
roles/libravatar/files/pg/pg_hba.conf
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
local libravatar libravatar md5
|
||||||
|
host libravatar libravatar 127.0.0.1/8 md5
|
||||||
|
host libravatar libravatar ::1/128 md5
|
||||||
|
local libravatar postgres ident
|
||||||
|
|
||||||
|
# TYPE DATABASE USER ADDRESS METHOD
|
||||||
|
local all all peer
|
||||||
|
host all all 127.0.0.1/32 ident
|
||||||
|
host all all ::1/128 ident
|
1
roles/libravatar/handlers/main.yml
Normal file
1
roles/libravatar/handlers/main.yml
Normal file
|
@ -0,0 +1 @@
|
||||||
|
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
89
roles/libravatar/tasks/main.yml
Normal file
89
roles/libravatar/tasks/main.yml
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
---
|
||||||
|
- import_tasks: "mount_fs.yml"
|
||||||
|
|
||||||
|
- name: install prerequisities
|
||||||
|
package: state=present pkg={{ item }}
|
||||||
|
with_items:
|
||||||
|
- "postgresql-server"
|
||||||
|
- "postgresql-contrib"
|
||||||
|
- "python3-psycopg2"
|
||||||
|
- "libselinux-python"
|
||||||
|
- "libsemanage-python"
|
||||||
|
- "python3-virtualenv"
|
||||||
|
- "community-mysql-devel"
|
||||||
|
- "openldap-devel"
|
||||||
|
- "python3-pip"
|
||||||
|
- "gcc"
|
||||||
|
- "git"
|
||||||
|
- "httpd"
|
||||||
|
- "python3-mod_wsgi"
|
||||||
|
|
||||||
|
- group: name=www
|
||||||
|
- user: name=www group=www
|
||||||
|
|
||||||
|
- git:
|
||||||
|
repo: https://git.linux-kernel.at/oliver/ivatar.git
|
||||||
|
dest: /srv/libravatar
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
|
- pip:
|
||||||
|
requirements: requirements.txt
|
||||||
|
virtualenv: /srv/data/.virtualenv
|
||||||
|
virtualenv_command: virtualenv-3
|
||||||
|
chdir: /srv/libravatar
|
||||||
|
|
||||||
|
- name: copy run-in-venv.sh script
|
||||||
|
copy: src="/srv/data/run-in-venv.sh" dest="/usr/local/bin/run-in-venv.sh" mode=755
|
||||||
|
|
||||||
|
- name: 'postgresql host is localhost'
|
||||||
|
lineinfile:
|
||||||
|
dest: '/etc/hosts'
|
||||||
|
line: '127.0.0.1 postgresql'
|
||||||
|
state: 'present'
|
||||||
|
tags:
|
||||||
|
- config
|
||||||
|
|
||||||
|
- name: ensure postgresql state
|
||||||
|
service: state=started enabled=yes name={{ item }}
|
||||||
|
with_items:
|
||||||
|
- postgresql
|
||||||
|
|
||||||
|
- name: upgrade db to head
|
||||||
|
command: "run-in-venv.sh python3 manage.py migrate"
|
||||||
|
args:
|
||||||
|
chdir: /srv/libravatar
|
||||||
|
|
||||||
|
- name: collect static
|
||||||
|
command: "run-in-venv.sh python3 manage.py collectstatic --noinput"
|
||||||
|
args:
|
||||||
|
chdir: /srv/libravatar
|
||||||
|
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1535689
|
||||||
|
- name: Allow execmem for Apache
|
||||||
|
seboolean:
|
||||||
|
name: httpd_execmem
|
||||||
|
state: yes
|
||||||
|
persistent: yes
|
||||||
|
|
||||||
|
- name: copy apache files to conf.d (templates)
|
||||||
|
template: src="httpd/{{ item }}" dest="/etc/httpd/conf.d/{{ item }}"
|
||||||
|
with_items:
|
||||||
|
- "libravatar.conf"
|
||||||
|
notify:
|
||||||
|
- reload httpd
|
||||||
|
tags:
|
||||||
|
- config
|
||||||
|
|
||||||
|
- name: copy httpd config
|
||||||
|
copy: src="httpd/{{ item }}" dest="/etc/httpd/conf.d/{{ item }}"
|
||||||
|
with_items:
|
||||||
|
- welcome.conf
|
||||||
|
notify:
|
||||||
|
- reload httpd
|
||||||
|
tags:
|
||||||
|
- config
|
||||||
|
|
||||||
|
- name: ensure httpd state
|
||||||
|
service: state=started enabled=yes name={{ item }}
|
||||||
|
with_items:
|
||||||
|
- httpd
|
5
roles/libravatar/tasks/mount_fs.yml
Normal file
5
roles/libravatar/tasks/mount_fs.yml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
- name: mount up disk
|
||||||
|
mount: name=/srv/data src='LABEL=libravatar-data' fstype=ext4 state=mounted
|
||||||
|
|
||||||
|
- name: mount up bind mount for postgresql
|
||||||
|
mount: src=/srv/data/pgsql name=/var/lib/pgsql fstype=auto opts=bind state=mounted
|
53
roles/libravatar/templates/httpd/libravatar.conf
Normal file
53
roles/libravatar/templates/httpd/libravatar.conf
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
WSGISocketPrefix /var/run/wsgi
|
||||||
|
Alias /robots.txt /var/www/html/robots.txt
|
||||||
|
|
||||||
|
<VirtualHost *:80>
|
||||||
|
ServerName {{ inventory_hostname }}
|
||||||
|
|
||||||
|
WSGIPassAuthorization On
|
||||||
|
WSGIDaemonProcess libravatar user=www group=www threads=25 display-name=libravatar maximum-requests=8000 graceful-timeout=20 python-home=/srv/data/.virtualenv python-path=/srv/libravatar
|
||||||
|
WSGIScriptAlias / /srv/data/wsgi.py
|
||||||
|
|
||||||
|
Alias /robots.txt /srv/libravatar/static/robots.txt
|
||||||
|
Alias /favicon.ico /srv/libravatar/static/favicon.ico
|
||||||
|
|
||||||
|
Alias /media/ /srv/libravatar/media/
|
||||||
|
Alias /static/ /srv/libravatar/static/
|
||||||
|
|
||||||
|
<Directory /srv/libravatar/static>
|
||||||
|
Require all granted
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
<Directory /srv/libravatar/media>
|
||||||
|
Require all granted
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
<Location />
|
||||||
|
WSGIProcessGroup libravatar
|
||||||
|
Require all granted
|
||||||
|
</Location>
|
||||||
|
|
||||||
|
<Directory /srv/libravatar>
|
||||||
|
WSGIApplicationGroup %{GLOBAL}
|
||||||
|
Require all granted
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
</VirtualHost>
|
||||||
|
|
||||||
|
<IfModule mod_status.c>
|
||||||
|
ExtendedStatus On
|
||||||
|
|
||||||
|
<Location /server-status>
|
||||||
|
SetHandler server-status
|
||||||
|
Require all denied
|
||||||
|
Require host localhost .redhat.com
|
||||||
|
</Location>
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
<IfModule mpm_prefork_module>
|
||||||
|
StartServers 8
|
||||||
|
MinSpareServers 8
|
||||||
|
MaxSpareServers 20
|
||||||
|
MaxClients 50
|
||||||
|
MaxRequestsPerChild 10000
|
||||||
|
</IfModule>
|
Loading…
Add table
Add a link
Reference in a new issue