Commit 18ddd445 by John Jarvis

formatting updates, upstart bash wrapper for forum

parent f6a7e2b5
...@@ -8,27 +8,24 @@ ...@@ -8,27 +8,24 @@
openid_workaround: True openid_workaround: True
roles: roles:
- common - common
# - role: nginx - role: nginx
# nginx_sites: nginx_sites:
# - cms - cms
# - lms - lms
# - lms-preview - lms-preview
# - ora - ora
# - xqueue - xqueue
# - xserver - xserver
# - edxlocal - edxlocal
# - role: supervisor - supervisor
# supervisor_servers: - mongo
# - forum - edxapp
# - lms - { role: 'rabbitmq', rabbitmq_ip: '127.0.0.1' }
# - mongo - { role: 'edxapp', celery_worker: True }
# - edxapp - oraclejdk
# - { role: 'rabbitmq', rabbitmq_ip: '127.0.0.1' } - elasticsearch
# - { role: 'edxapp', celery_worker: True } - forum
# - oraclejdk - { role: "xqueue", update_users: True }
# - elasticsearch - xserver
# - forum - ora
# - { role: "xqueue", update_users: True }
# - xserver
# - ora
- discern - discern
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
data_dir: /edx/var data_dir: /edx/var
app_dir: /edx/app app_dir: /edx/app
log_dir: "{{ data_dir }}/log" log_dir: "{{ data_dir }}/log"
venvs_dir: "{{ app_dir }}/venvs"
bin_dir: /edx/bin bin_dir: /edx/bin
cfg_dir: /edx/etc cfg_dir: /edx/etc
......
...@@ -7,30 +7,29 @@ ...@@ -7,30 +7,29 @@
- name: common | Create common directories - name: common | Create common directories
file: > file: >
path={{ item }} path={{ item }} state=directory owner=root
state=directory group=root mode=0755
owner=root
group=root
mode=0755
with_items: with_items:
- "{{ data_dir }}" - "{{ data_dir }}"
- "{{ app_dir }}" - "{{ app_dir }}"
- "{{ log_dir }}" - "{{ log_dir }}"
- "{{ venvs_dir }}"
- "{{ bin_dir }}" - "{{ bin_dir }}"
- "{{ cfg_dir }}" - "{{ cfg_dir }}"
- name: common | Install role-independent useful system packages - name: common | Install role-independent useful system packages
# do this before log dir setup; rsyslog package guarantees syslog user present # do this before log dir setup; rsyslog package guarantees syslog user present
apt: pkg={{','.join(common_debian_pkgs)}} install_recommends=yes state=present update_cache=yes apt: >
pkg={{','.join(common_debian_pkgs)}} install_recommends=yes
state=present update_cache=yes
- name: common | upload sudo config for key forwarding as root - name: common | upload sudo config for key forwarding as root
copy: src=ssh_key_forward dest=/etc/sudoers.d/ssh_key_forward validate='visudo -c -f %s' owner=root group=root mode=0440 copy: >
src=ssh_key_forward dest=/etc/sudoers.d/ssh_key_forward
validate='visudo -c -f %s' owner=root group=root mode=0440
- name: common | pip install virtualenv - name: common | pip install virtualenv
pip: > pip: >
name="{{ item }}" name="{{ item }}" state=present
state=present
extra_args="-i {{ PYPI_MIRROR_URL }}" extra_args="-i {{ PYPI_MIRROR_URL }}"
with_items: common_pip_pkgs with_items: common_pip_pkgs
......
...@@ -26,19 +26,21 @@ ...@@ -26,19 +26,21 @@
with_items: discern_ease_debian_pkgs with_items: discern_ease_debian_pkgs
- name: discern | render celery service from template - name: discern | render celery service from template
template: src=celery.conf.j2 dest=/etc/init/celery.conf template: >
src=celery.conf.j2 dest=/etc/init/celery.conf
owner=root group=root
notify: discern | restart celery notify: discern | restart celery
- name: discern | render discern service from template - name: discern | render discern service from template
template: src=discern.conf.j2 dest=/etc/init/discern.conf template: >
src=discern.conf.j2 dest=/etc/init/discern.conf
owner=root group=root
notify: discern | restart discern notify: discern | restart discern
- name: discern | copy sudoers file for discern - name: discern | copy sudoers file for discern
copy: > copy: >
src=sudoers-discern src=sudoers-discern dest=/etc/sudoers.d/discern
dest=/etc/sudoers.d/discern mode=0440 validate='visudo -cf %s' owner=root group=root
mode=0440
validate='visudo -cf %s'
#Needed if using redis to prevent memory issues #Needed if using redis to prevent memory issues
- name: discern | change memory commit settings -- needed for redis - name: discern | change memory commit settings -- needed for redis
......
...@@ -9,33 +9,26 @@ ...@@ -9,33 +9,26 @@
- name: edxapp | create application user - name: edxapp | create application user
user: > user: >
name="{{ edxapp_user }}" name="{{ edxapp_user }}" home="{{ edxapp_app_dir }}"
home="{{ edxapp_app_dir }}" createhome=no shell=/bin/false
createhome=no
shell=/bin/false
- name: edxapp | create edxapp app dir - name: edxapp | create edxapp app dir
file: > file: >
path="{{ item }}" path="{{ item }}" state=directory
state=directory owner="{{ edxapp_user }}" group="{{ common_web_group }}"
owner="{{ edxapp_user }}"
group="{{ common_web_group }}"
with_items: with_items:
- "{{ edxapp_app_dir }}" - "{{ edxapp_app_dir }}"
- "{{ edxapp_venvs_dir }}" - "{{ edxapp_venvs_dir }}"
- name: edxapp | create edxapp log dir - name: edxapp | create edxapp log dir
file: > file: >
path="{{ edxapp_log_dir }}" path="{{ edxapp_log_dir }}" state=directory
state=directory owner="{{ common_log_user }}" group="{{ common_log_user }}"
owner="{{ common_log_user }}"
group="{{ common_log_user }}"
- name: edxapp | create edxapp writable dirs - name: edxapp | create edxapp writable dirs
file: > file: >
path="{{ item }}" path="{{ item }}" state=directory
state=directory owner="{{ edxapp_user }}" group="{{ edxapp_user }}"
owner="{{ edxapp_user }}"
with_items: with_items:
- "{{ edxapp_staticfile_dir }}" - "{{ edxapp_staticfile_dir }}"
- "{{ edxapp_theme_dir }}" - "{{ edxapp_theme_dir }}"
...@@ -43,10 +36,8 @@ ...@@ -43,10 +36,8 @@
- name: edxapp | create web-writable edxapp data dirs - name: edxapp | create web-writable edxapp data dirs
file: > file: >
path="{{ item }}" path="{{ item }}" state=directory
state=directory owner="{{ common_web_user }}" group="{{ edxapp_user }}"
owner="{{ common_web_user }}"
group="{{ edxapp_user }}"
mode="0775" mode="0775"
with_items: with_items:
- "{{ edxapp_course_data_dir }}" - "{{ edxapp_course_data_dir }}"
...@@ -57,19 +48,21 @@ ...@@ -57,19 +48,21 @@
- name: edxapp | creating edxapp upstart script - name: edxapp | creating edxapp upstart script
sudo: True sudo: True
template: src=edxapp.conf.j2 dest=/etc/init/edxapp.conf owner=root group=root template: >
src=edxapp.conf.j2 dest=/etc/init/edxapp.conf
owner=root group=root
when: "celery_worker is not defined" when: "celery_worker is not defined"
- name: edxapp | create edx-workers upstart script - name: edxapp | create edx-workers upstart script
template: src=edx-workers.conf.j2 dest=/etc/init/edx-workers.conf owner=root group=root template: >
src=edx-workers.conf.j2 dest=/etc/init/edx-workers.conf
owner=root group=root
when: "celery_worker is defined" when: "celery_worker is defined"
- name: edxapp | create log directories for service variants - name: edxapp | create log directories for service variants
file: > file: >
path={{ edxapp_log_dir }}/{{ item }} path={{ edxapp_log_dir }}/{{ item }} state=directory
state=directory owner={{ common_log_user }} group={{ common_log_user }}
owner={{ common_log_user }}
group={{ common_log_user }}
mode=0750 mode=0750
with_items: with_items:
- lms - lms
......
...@@ -23,28 +23,37 @@ ...@@ -23,28 +23,37 @@
- name: forum | create application user - name: forum | create application user
user: > user: >
name="{{ forum_user }}" name="{{ forum_user }}" home="{{ forum_app_dir }}"
home="{{ forum_app_dir }}"
createhome=no createhome=no
shell=/bin/false shell=/bin/false
- name: forum | create forum app dir - name: forum | create forum app dir
file: > file: >
path="{{ forum_app_dir }}" path="{{ forum_app_dir }}" state=directory
state=directory owner="{{ forum_user }}" group="{{ common_web_group }}"
owner="{{ forum_user }}"
group="{{ common_web_group }}"
- name: forum | setup the forum env - name: forum | setup the forum env
template: src=forum_env.j2 dest={{ forum_app_dir }}/forum_env template: >
sudo_user: "{{ forum_user }}" src=forum_env.j2 dest={{ forum_app_dir }}/forum_env
owner={{ forum_user }} group={{ forum_user }}
notify: notify:
- forum | restart the forum service - forum | restart the forum service
- name: forum | create the supervisor config
template: >
src=forum.conf.j2 dest={{ supervisor_cfg_dir }}/forum.conf
owner={{ common_web_user }} group={{ supervisor_user }}
register: forum_supervisor
- include: deploy.yml - include: deploy.yml
- name: forum | create the supervisor config # Reload supervisor right away when the configuration
template: src=forum.conf.j2 dest={{ supervisor_cfg_dir }}/forum.conf # changes, this happens after deploy.yml tasks so
notify: # that the application is installed
- forum | restart the forum service
- name: forum | reload supervisor
shell: "{{ supervisor_ctl }} -c {{ supervisor_cfg }} reload"
when: forum_supervisor.changed
- include: test.yml - include: test.yml
#!/bin/bash
source {{ forum_app_dir }}/forum_env
cd {{ forum_code_dir }}
{{ forum_rbenv_shims }}/ruby app.rb
...@@ -5,6 +5,5 @@ user={{ common_web_user }} ...@@ -5,6 +5,5 @@ user={{ common_web_user }}
startsecs=10 startsecs=10
stdout_logfile={{ supervisor_log_dir }}/%(program_name)-stdout.log stdout_logfile={{ supervisor_log_dir }}/%(program_name)-stdout.log
stderr_logfile={{ supervisor_log_dir }}/%(program_name)-stderr.log stderr_logfile={{ supervisor_log_dir }}/%(program_name)-stderr.log
stderr_logfile_maxbytes=1MB
killasgroup=true killasgroup=true
stopasgroup=true stopasgroup=true
...@@ -22,16 +22,12 @@ ...@@ -22,16 +22,12 @@
- name: gh_users | grant full sudo access to gh group - name: gh_users | grant full sudo access to gh group
copy: > copy: >
content="%adm ALL=(ALL) NOPASSWD:ALL" content="%adm ALL=(ALL) NOPASSWD:ALL"
dest=/etc/sudoers.d/gh dest=/etc/sudoers.d/gh owner=root group=root
owner=root mode=0440 validate='visudo -cf %s'
group=root
mode=0440
validate='visudo -cf %s'
- name: gh_users | create github users - name: gh_users | create github users
user: user:
name={{ item }} name={{ item }} group=gh
group=gh
shell=/bin/bash shell=/bin/bash
with_items: gh_users with_items: gh_users
......
...@@ -3,10 +3,8 @@ ...@@ -3,10 +3,8 @@
- name: mongo | install python pymongo for mongo_user ansible module - name: mongo | install python pymongo for mongo_user ansible module
pip: > pip: >
name=pymongo name=pymongo state=present
state=present version=2.6.3 extra_args="-i {{ PYPI_MIRROR_URL }}"
version=2.6.3
extra_args="-i {{ PYPI_MIRROR_URL }}"
- name: mongo | add the mongodb signing key - name: mongo | add the mongodb signing key
apt_key: > apt_key: >
...@@ -22,15 +20,18 @@ ...@@ -22,15 +20,18 @@
- name: mongo | install mongo server and recommends - name: mongo | install mongo server and recommends
apt: > apt: >
pkg=mongodb-10gen={{ mongo_version }} pkg=mongodb-10gen={{ mongo_version }}
state=present state=present install_recommends=yes
install_recommends=yes
update_cache=yes update_cache=yes
- name: mongo | create mongo data dir - name: mongo | create mongo dirs
file: > file: >
path="{{ mongo_data_dir }}" path="{{ item }}" state=directory
state=directory
owner="{{ mongo_user }}" owner="{{ mongo_user }}"
group="{{ mongo_user }}"
with_items:
- "{{ mongo_data_dir }}"
- "{{ mongo_dbpath }}"
- "{{ mongo_app_dir }}"
- name: mongo | stop mongo service - name: mongo | stop mongo service
service: name=mongodb state=stopped service: name=mongodb state=stopped
......
...@@ -4,85 +4,70 @@ ...@@ -4,85 +4,70 @@
- name: nginx | Install nginx - name: nginx | Install nginx
apt: pkg=nginx state={{ pkgs.nginx.state }} apt: pkg=nginx state={{ pkgs.nginx.state }}
notify: nginx | restart nginx notify: nginx | restart nginx
tags:
- nginx
- install
- name: nginx | Server configuration file - name: nginx | Server configuration file
copy: src={{secure_dir}}/files/nginx.conf dest=/etc/nginx/nginx.conf owner=root group=root mode=0644 copy: >
src={{secure_dir}}/files/nginx.conf dest=/etc/nginx/nginx.conf
owner=root group=root mode=0644
when: nginx_conf is defined when: nginx_conf is defined
notify: nginx | reload nginx notify: nginx | reload nginx
tags:
- nginx
- install
- name: nginx | Creating common nginx configuration - name: nginx | Creating common nginx configuration
template: src=edx-release.j2 dest=/etc/nginx/sites-available/edx-release owner=root group=root mode=0600 template: >
src=edx-release.j2 dest=/etc/nginx/sites-available/edx-release
owner=root group=root mode=0600
notify: nginx | reload nginx notify: nginx | reload nginx
tags:
- nginx
- name: nginx | Creating link for common nginx configuration - name: nginx | Creating link for common nginx configuration
file: src=/etc/nginx/sites-available/edx-release dest=/etc/nginx/sites-enabled/edx-release state=link owner=root group=root file: >
src=/etc/nginx/sites-available/edx-release dest=/etc/nginx/sites-enabled/edx-release
state=link owner=root group=root
notify: nginx | reload nginx notify: nginx | reload nginx
tags:
- nginx
- name: nginx | Copying nginx configs for {{ nginx_sites }} - name: nginx | Copying nginx configs for {{ nginx_sites }}
template: src={{ item }}.j2 dest=/etc/nginx/sites-available/{{ item }} owner=root group=root mode=0600 template: >
src={{ item }}.j2 dest=/etc/nginx/sites-available/{{ item }}
owner=root group=root mode=0600
notify: nginx | reload nginx notify: nginx | reload nginx
with_items: nginx_sites with_items: nginx_sites
tags:
- nginx
- name: nginx | Creating nginx config links for {{ nginx_sites }} - name: nginx | Creating nginx config links for {{ nginx_sites }}
file: src=/etc/nginx/sites-available/{{ item }} dest=/etc/nginx/sites-enabled/{{ item }} state=link owner=root group=root file: >
src=/etc/nginx/sites-available/{{ item }}
dest=/etc/nginx/sites-enabled/{{ item }} state=link owner=root group=root
notify: nginx | reload nginx notify: nginx | reload nginx
with_items: nginx_sites with_items: nginx_sites
tags:
- nginx
- name: nginx | Write out default htpasswd file - name: nginx | Write out default htpasswd file
copy: content={{ nginx_cfg.htpasswd }} dest=/etc/nginx/nginx.htpasswd owner=www-data group=www-data mode=0600 copy: >
tags: content={{ nginx_cfg.htpasswd }} dest=/etc/nginx/nginx.htpasswd
- nginx owner=www-data group=www-data mode=0600
- update
- name: nginx | Create nginx log file location (just in case) - name: nginx | Create nginx log file location (just in case)
file: path={{log_dir}}/nginx state=directory owner=syslog group=syslog mode=2770 recurse=yes file: >
tags: path={{log_dir}}/nginx state=directory
- nginx owner=syslog group=syslog mode=2770 recurse=yes
- logging
- update
# removing default link # removing default link
- name: nginx | Removing default nginx config and restart (enabled) - name: nginx | Removing default nginx config and restart (enabled)
file: path=/etc/nginx/sites-enabled/default state=absent file: path=/etc/nginx/sites-enabled/default state=absent
notify: nginx | reload nginx notify: nginx | reload nginx
tags:
- nginx
- update
# Note that nginx logs to /var/log until it reads its configuration, so /etc/logrotate.d/nginx is still good # Note that nginx logs to /var/log until it reads its configuration, so /etc/logrotate.d/nginx is still good
- name: nginx | Set up nginx access log rotation - name: nginx | Set up nginx access log rotation
template: dest=/etc/logrotate.d/nginx-access src=edx_logrotate_nginx_access.j2 owner=root group=root mode=644 template: >
tags: dest=/etc/logrotate.d/nginx-access src=edx_logrotate_nginx_access.j2
- logging owner=root group=root mode=644
- update
- name: nginx | Set up nginx access log rotation - name: nginx | Set up nginx access log rotation
template: dest=/etc/logrotate.d/nginx-error src=edx_logrotate_nginx_error.j2 owner=root group=root mode=644 template: >
tags: dest=/etc/logrotate.d/nginx-error src=edx_logrotate_nginx_error.j2
- logging owner=root group=root mode=644
- update
- name: nginx | Removing default nginx config (available) - name: nginx | Removing default nginx config (available)
file: path=/etc/nginx/sites-available/default state=absent file: path=/etc/nginx/sites-available/default state=absent
notify: nginx | reload nginx notify: nginx | reload nginx
tags:
- nginx
- update
# If tasks that notify restart nginx don't change the state of the remote system # If tasks that notify restart nginx don't change the state of the remote system
# their corresponding notifications don't get run. If nginx has been stopped for # their corresponding notifications don't get run. If nginx has been stopped for
......
auth_basic "Restricted"; auth_basic "Restricted";
auth_basic_user_file /etc/nginx/nginx.htpasswd; auth_basic_user_file /etc/nginx/nginx.htpasswd;
root {{ nginx_app_dir }}/main_static;
index index.html index index.html
proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Proto https;
...@@ -2,16 +2,16 @@ ...@@ -2,16 +2,16 @@
# #
# notifier # notifier
# #
# Overview: # Overview:
# #
# Provides the edX notifier service, a service for sending # Provides the edX notifier service, a service for sending
# notifications over messaging protocols. # notifications over messaging protocols.
# #
# Dependencies: # Dependencies:
# #
# * common # * common
# #
# Example play: # Example play:
# roles: # roles:
# - common # - common
...@@ -19,153 +19,84 @@ ...@@ -19,153 +19,84 @@
# #
- name: notifier | install notifier specific system packages - name: notifier | install notifier specific system packages
apt: pkg={{','.join(notifier_debian_pkgs)}} state=present apt: pkg={{','.join(notifier_debian_pkgs)}} state=present
tags:
- notifier
- install
- update
- name: notifier | check if incommon ca is installed - name: notifier | check if incommon ca is installed
command: test -e /usr/share/ca-certificates/incommon/InCommonServerCA.crt command: test -e /usr/share/ca-certificates/incommon/InCommonServerCA.crt
register: incommon_present register: incommon_present
ignore_errors: yes ignore_errors: yes
tags:
- notifier
- install
- update
- name: common | create incommon ca directory - name: common | create incommon ca directory
file: file:
path="/usr/share/ca-certificates/incommon" mode=2775 state=directory path="/usr/share/ca-certificates/incommon" mode=2775 state=directory
when: incommon_present|failed when: incommon_present|failed
tags:
- notifier
- install
- update
- ubuntu
- name: common | retrieve incommon server CA - name: common | retrieve incommon server CA
shell: curl https://www.incommon.org/cert/repository/InCommonServerCA.txt -o /usr/share/ca-certificates/incommon/InCommonServerCA.crt shell: curl https://www.incommon.org/cert/repository/InCommonServerCA.txt -o /usr/share/ca-certificates/incommon/InCommonServerCA.crt
when: incommon_present|failed when: incommon_present|failed
tags:
- notifier
- install
- update
- ubuntu
- name: common | add InCommon ca cert - name: common | add InCommon ca cert
lineinfile: lineinfile:
dest=/etc/ca-certificates.conf dest=/etc/ca-certificates.conf
regexp='incommon/InCommonServerCA.crt' regexp='incommon/InCommonServerCA.crt'
line='incommon/InCommonServerCA.crt' line='incommon/InCommonServerCA.crt'
tags:
- notifier
- install
- update
- ubuntu
- name: common | update ca certs globally - name: common | update ca certs globally
shell: update-ca-certificates shell: update-ca-certificates
tags:
- notifier
- install
- update
- ubuntu
- name: notifier | create notifier user {{ NOTIFIER_USER }} - name: notifier | create notifier user {{ NOTIFIER_USER }}
user: user:
name={{ NOTIFIER_USER }} state=present shell=/bin/bash name={{ NOTIFIER_USER }} state=present shell=/bin/bash
home={{ NOTIFIER_HOME }} createhome=yes home={{ NOTIFIER_HOME }} createhome=yes
tags:
- notifier
- install
- update
- name: notifier | setup the notifier env - name: notifier | setup the notifier env
template: template:
src=notifier_env.j2 dest={{ NOTIFIER_HOME }}/notifier_env src=notifier_env.j2 dest={{ NOTIFIER_HOME }}/notifier_env
owner="{{ NOTIFIER_USER }}" group="{{ NOTIFIER_USER }}" owner="{{ NOTIFIER_USER }}" group="{{ NOTIFIER_USER }}"
tags:
- notifier
- install
- update
- name: notifier | drop a bash_profile - name: notifier | drop a bash_profile
copy: > copy: >
src=../../common/files/bash_profile src=../../common/files/bash_profile
dest={{ NOTIFIER_HOME }}/.bash_profile dest={{ NOTIFIER_HOME }}/.bash_profile
owner={{ NOTIFIER_USER }} owner={{ NOTIFIER_USER }}
group={{ NOTIFIER_USER }} group={{ NOTIFIER_USER }}
- name: notifier | ensure .bashrc exists - name: notifier | ensure .bashrc exists
shell: touch {{ NOTIFIER_HOME }}/.bashrc shell: touch {{ NOTIFIER_HOME }}/.bashrc
sudo: true sudo: true
sudo_user: "{{ NOTIFIER_USER }}" sudo_user: "{{ NOTIFIER_USER }}"
tags:
- notifier
- install
- update
- name: notifier | add source of notifier_env to .bashrc - name: notifier | add source of notifier_env to .bashrc
lineinfile: lineinfile:
dest={{ NOTIFIER_HOME }}/.bashrc dest={{ NOTIFIER_HOME }}/.bashrc
regexp='. {{ NOTIFIER_HOME }}/notifier_env' regexp='. {{ NOTIFIER_HOME }}/notifier_env'
line='. {{ NOTIFIER_HOME }}/notifier_env' line='. {{ NOTIFIER_HOME }}/notifier_env'
tags:
- notifier
- install
- update
- name: notifier | add source venv to .bashrc - name: notifier | add source venv to .bashrc
lineinfile: lineinfile:
dest={{ NOTIFIER_HOME }}/.bashrc dest={{ NOTIFIER_HOME }}/.bashrc
regexp='. {{ NOTIFIER_VENV_DIR }}/bin/activate' regexp='. {{ NOTIFIER_VENV_DIR }}/bin/activate'
line='. {{ NOTIFIER_VENV_DIR }}/bin/activate' line='. {{ NOTIFIER_VENV_DIR }}/bin/activate'
tags:
- notifier
- install
- update
- name: notifier | create notifier DB directory - name: notifier | create notifier DB directory
file: file:
path="{{ NOTIFIER_DB_DIR }}" mode=2775 state=directory path="{{ NOTIFIER_DB_DIR }}" mode=2775 state=directory
tags:
- notifier
- install
- update
- name: notifier | create notifier/bin directory - name: notifier | create notifier/bin directory
file: file:
path="{{ NOTIFIER_HOME }}/bin" mode=2775 state=directory path="{{ NOTIFIER_HOME }}/bin" mode=2775 state=directory
tags:
- notifier
- install
- update
- name: common | create supervisor log directoy - name: common | create supervisor log directoy
file: file:
path={{NOTIFIER_SUPERVISOR_LOG_DEST }} mode=2750 state=directory path={{NOTIFIER_SUPERVISOR_LOG_DEST }} mode=2750 state=directory
tags:
- notifier
- install
- update
- ubuntu
- name: notifier | supervisord config for celery workers - name: notifier | supervisord config for celery workers
template: template:
src=etc/supervisor/conf.d/notifier-celery-workers.conf.j2 dest=/etc/supervisor/conf.d/notifier-celery-workers.conf src=etc/supervisor/conf.d/notifier-celery-workers.conf.j2 dest=/etc/supervisor/conf.d/notifier-celery-workers.conf
notify: notifier | restart notifier-celery-workers notify: notifier | restart notifier-celery-workers
tags:
- notifier
- install
- update
- name: notifier | supervisord config for scheduler - name: notifier | supervisord config for scheduler
template: template:
src=etc/supervisor/conf.d/notifier-scheduler.conf.j2 dest=/etc/supervisor/conf.d/notifier-scheduler.conf src=etc/supervisor/conf.d/notifier-scheduler.conf.j2 dest=/etc/supervisor/conf.d/notifier-scheduler.conf
notify: notifier | restart notifier-scheduler notify: notifier | restart notifier-scheduler
tags:
- notifier
- install
- update
- include: deploy.yml - include: deploy.yml
...@@ -5,17 +5,13 @@ ...@@ -5,17 +5,13 @@
- name: ora | create application user - name: ora | create application user
user: > user: >
name="{{ ora_user }}" name="{{ ora_user }}" home="{{ ora_app_dir }}"
home="{{ ora_app_dir }}" createhome=no shell=/bin/false
createhome=no
shell=/bin/false
- name: ora | create ora app and data dir - name: ora | create ora app and data dir
file: > file: >
path="{{ item }}" path="{{ item }}" state=directory
state=directory owner="{{ ora_user }}" group="{{ common_web_group }}"
owner="{{ ora_user }}"
group="{{ common_web_group }}"
with_items: with_items:
- "{{ ora_venvs_dir }}" - "{{ ora_venvs_dir }}"
- "{{ ora_app_dir }}" - "{{ ora_app_dir }}"
...@@ -35,5 +31,4 @@ ...@@ -35,5 +31,4 @@
- name: ora | create a symlink for venv python - name: ora | create a symlink for venv python
file: > file: >
src="{{ ora_venv_bin }}/python" src="{{ ora_venv_bin }}/python"
dest={{ cfg_dir }}/python.ora dest={{ cfg_dir }}/python.ora state=link
state=link
--- ---
# oraclejdk # oraclejdk
# #
# Dependencies: # Dependencies:
# #
# * common # * common
# #
# Example play: # Example play:
# #
# roles: # roles:
...@@ -16,40 +16,28 @@ ...@@ -16,40 +16,28 @@
command: test -d /usr/lib/jvm/{{ oraclejdk_base }} command: test -d /usr/lib/jvm/{{ oraclejdk_base }}
ignore_errors: true ignore_errors: true
register: oraclejdk_present register: oraclejdk_present
tags:
- oraclejdk
- install
- name: oraclejdk | download Oracle Java - name: oraclejdk | download Oracle Java
shell: > shell: >
curl -b gpw_e24=http%3A%2F%2Fwww.oracle.com -O -L {{ oraclejdk_url }} curl -b gpw_e24=http%3A%2F%2Fwww.oracle.com -O -L {{ oraclejdk_url }}
executable=/bin/bash executable=/bin/bash
chdir=/var/tmp chdir=/var/tmp
creates=/var/tmp/{{ oraclejdk_file }} creates=/var/tmp/{{ oraclejdk_file }}
when: oraclejdk_present|failed when: oraclejdk_present|failed
- name: oraclejdk | install Oracle Java - name: oraclejdk | install Oracle Java
shell: > shell: >
mkdir -p /usr/lib/jvm && tar -C /usr/lib/jvm -zxvf /var/tmp/{{ oraclejdk_file }} mkdir -p /usr/lib/jvm && tar -C /usr/lib/jvm -zxvf /var/tmp/{{ oraclejdk_file }}
creates=/usr/lib/jvm/{{ oraclejdk_base }} creates=/usr/lib/jvm/{{ oraclejdk_base }}
executable=/bin/bash executable=/bin/bash
sudo: true sudo: true
when: oraclejdk_present|failed when: oraclejdk_present|failed
tags:
- oraclejdk
- install
- name: oraclejdk | create symlink expected by elasticsearch - name: oraclejdk | create symlink expected by elasticsearch
file: src=/usr/lib/jvm/{{ oraclejdk_base }} dest={{ oraclejdk_link }} state=link file: src=/usr/lib/jvm/{{ oraclejdk_base }} dest={{ oraclejdk_link }} state=link
when: oraclejdk_present|failed when: oraclejdk_present|failed
tags:
- oraclejdk
- install
- name: oraclejdk | add JAVA_HOME for Oracle Java - name: oraclejdk | add JAVA_HOME for Oracle Java
template: src=java.sh.j2 dest=/etc/profile.d/java.sh owner=root group=root mode=0755 template: src=java.sh.j2 dest=/etc/profile.d/java.sh owner=root group=root mode=0755
when: oraclejdk_present|failed when: oraclejdk_present|failed
tags:
- oraclejdk
- install
...@@ -20,26 +20,35 @@ ...@@ -20,26 +20,35 @@
# Defaulting to /var/lib/rabbitmq # Defaulting to /var/lib/rabbitmq
- name: rabbitmq | create cookie directory - name: rabbitmq | create cookie directory
file: path={{rabbitmq_cookie_dir}} owner=rabbitmq group=rabbitmq mode=0755 state=directory file: >
path={{rabbitmq_cookie_dir}}
owner=rabbitmq group=rabbitmq mode=0755 state=directory
- name: rabbitmq | add rabbitmq erlang cookie - name: rabbitmq | add rabbitmq erlang cookie
template: src=erlang.cookie.j2 dest={{rabbitmq_cookie_location}} owner=rabbitmq group=rabbitmq mode=0400 template: >
src=erlang.cookie.j2 dest={{rabbitmq_cookie_location}}
owner=rabbitmq group=rabbitmq mode=0400
register: erlang_cookie register: erlang_cookie
# Defaulting to /etc/rabbitmq # Defaulting to /etc/rabbitmq
- name: rabbitmq | create rabbitmq config directory - name: rabbitmq | create rabbitmq config directory
file: path={{rabbitmq_config_dir}} owner=root group=root mode=0755 state=directory file: >
path={{rabbitmq_config_dir}}
owner=root group=root mode=0755 state=directory
- name: rabbitmq | add rabbitmq environment configuration - name: rabbitmq | add rabbitmq environment configuration
template: src=rabbitmq-env.conf.j2 dest={{rabbitmq_config_dir}}/rabbitmq-env.conf owner=root group=root mode=0644 template: >
src=rabbitmq-env.conf.j2 dest={{rabbitmq_config_dir}}/rabbitmq-env.conf
owner=root group=root mode=0644
- name: rabbitmq | add rabbitmq cluster configuration - name: rabbitmq | add rabbitmq cluster configuration
template: src=rabbitmq.config.j2 dest={{rabbitmq_config_dir}}/rabbitmq.config owner=root group=root mode=0644 template: >
src=rabbitmq.config.j2 dest={{rabbitmq_config_dir}}/rabbitmq.config
owner=root group=root mode=0644
register: cluster_configuration register: cluster_configuration
- name: rabbitmq | install plugins - name: rabbitmq | install plugins
rabbitmq_plugin: rabbitmq_plugin:
names={{",".join(rabbitmq_plugins)}} state=enabled names={{",".join(rabbitmq_plugins)}} state=enabled
# When rabbitmq starts up it creates a folder of metadata at '/var/lib/rabbitmq/mnesia'. # When rabbitmq starts up it creates a folder of metadata at '/var/lib/rabbitmq/mnesia'.
...@@ -60,13 +69,9 @@ ...@@ -60,13 +69,9 @@
- name: rabbitmq | add admin users - name: rabbitmq | add admin users
rabbitmq_user: > rabbitmq_user: >
user='{{item.name}}' user='{{item.name}}' password='{{item.password}}'
password='{{item.password}}' read_priv='.*' write_priv='.*'
read_priv='.*' configure_priv='.*' tags="administrator" state=present
write_priv='.*'
configure_priv='.*'
tags="administrator"
state=present
with_items: rabbitmq_auth_config.admins with_items: rabbitmq_auth_config.admins
when: "'admins' in rabbitmq_auth_config" when: "'admins' in rabbitmq_auth_config"
...@@ -74,11 +79,11 @@ ...@@ -74,11 +79,11 @@
# Depends upon the management plugin # Depends upon the management plugin
# #
- name: rabbitmq | install admin tools - name: rabbitmq | install admin tools
get_url: get_url: >
url=http://localhost:{{ rabbitmq_management_port }}/cli/rabbitmqadmin url=http://localhost:{{ rabbitmq_management_port }}/cli/rabbitmqadmin
dest=/usr/local/bin/rabbitmqadmin dest=/usr/local/bin/rabbitmqadmin
- name: rabbitmq | ensure rabbitmqadmin attributes - name: rabbitmq | ensure rabbitmqadmin attributes
file: file: >
path=/usr/local/bin/rabbitmqadmin owner=root path=/usr/local/bin/rabbitmqadmin owner=root
group=root mode=0655 group=root mode=0655
...@@ -36,16 +36,13 @@ ...@@ -36,16 +36,13 @@
- name: rbenv | create rbenv user {{ rbenv_user }} - name: rbenv | create rbenv user {{ rbenv_user }}
user: > user: >
name={{ rbenv_user }} name={{ rbenv_user }} home={{ rbenv_dir }}
home={{ rbenv_dir }} shell=/bin/false createhome=no
shell=/bin/false
createhome=no
when: rbenv_user != common_web_user when: rbenv_user != common_web_user
- name: rbenv | create rbenv dir if it does not exist - name: rbenv | create rbenv dir if it does not exist
file: > file: >
path="{{ rbenv_dir }}" path="{{ rbenv_dir }}" owner="{{ rbenv_user }}"
owner="{{ rbenv_user }}"
state=directory state=directory
- name: rbenv | install build depends - name: rbenv | install build depends
...@@ -55,14 +52,12 @@ ...@@ -55,14 +52,12 @@
- name: rbenv | update rbenv repo - name: rbenv | update rbenv repo
git: > git: >
repo=https://github.com/sstephenson/rbenv.git repo=https://github.com/sstephenson/rbenv.git
dest={{ rbenv_dir }}/.rbenv dest={{ rbenv_dir }}/.rbenv version={{ rbenv_version }}
version={{ rbenv_version }}
sudo_user: "{{ rbenv_user }}" sudo_user: "{{ rbenv_user }}"
- name: rbenv | ensure ruby_env exists - name: rbenv | ensure ruby_env exists
template: > template: >
src=ruby_env.j2 src=ruby_env.j2 dest={{ rbenv_dir }}/ruby_env
dest={{ rbenv_dir }}/ruby_env
sudo_user: "{{ rbenv_user }}" sudo_user: "{{ rbenv_user }}"
- name: rbenv | check ruby-build installed - name: rbenv | check ruby-build installed
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
supervisor_app_dir: "{{ app_dir }}/supervisor" supervisor_app_dir: "{{ app_dir }}/supervisor"
supervisor_cfg_dir: "{{ supervisor_app_dir }}/conf.d" supervisor_cfg_dir: "{{ supervisor_app_dir }}/conf.d"
supervisor_data_dir: "{{ data_dir }}/supervisor" supervisor_data_dir: "{{ data_dir }}/supervisor"
supervisor_venvs_dir: "{{ venvs_dir }}/supervisor" supervisor_venvs_dir: "{{ supervisor_app_dir }}/venvs"
supervisor_venv_dir: "{{ supervisor_venvs_dir }}/supervisor" supervisor_venv_dir: "{{ supervisor_venvs_dir }}/supervisor"
supervisor_venv_bin: "{{ supervisor_venv_dir }}/bin" supervisor_venv_bin: "{{ supervisor_venv_dir }}/bin"
supervisor_ctl: "{{ supervisor_venv_bin }}/supervisorctl" supervisor_ctl: "{{ supervisor_venv_bin }}/supervisorctl"
......
...@@ -2,3 +2,6 @@ ...@@ -2,3 +2,6 @@
service: > service: >
name=supervisor name=supervisor
state=restarted state=restarted
- name: supervisor | reload supervisor
shell: "{{ supervisor_ctl }} -c {{ supervisor_cfg }} reload"
...@@ -38,7 +38,6 @@ ...@@ -38,7 +38,6 @@
group={{ common_web_user }} group={{ common_web_user }}
with_items: with_items:
- "{{ supervisor_app_dir }}" - "{{ supervisor_app_dir }}"
- "{{ supervisor_cfg_dir }}"
- "{{ supervisor_venvs_dir }}" - "{{ supervisor_venvs_dir }}"
- name: supervisor | create supervisor directories - name: supervisor | create supervisor directories
...@@ -48,6 +47,7 @@ ...@@ -48,6 +47,7 @@
owner={{ common_web_user }} owner={{ common_web_user }}
group={{ supervisor_user }} group={{ supervisor_user }}
with_items: with_items:
- "{{ supervisor_cfg_dir }}"
- "{{ supervisor_data_dir }}" - "{{ supervisor_data_dir }}"
- "{{ supervisor_log_dir }}" - "{{ supervisor_log_dir }}"
...@@ -58,12 +58,15 @@ ...@@ -58,12 +58,15 @@
notify: supervisor | restart supervisor notify: supervisor | restart supervisor
- name: supervisor | create supervisor upstart job - name: supervisor | create supervisor upstart job
template: src=supervisor-upstart.conf.j2 dest=/etc/init/supervisor.conf template: >
src=supervisor-upstart.conf.j2 dest=/etc/init/supervisor.conf
owner=root group=root
notify: supervisor | restart supervisor notify: supervisor | restart supervisor
- name: supervisor | create supervisor master config - name: supervisor | create supervisor master config
template: src=supervisord.conf.j2 dest={{ supervisor_cfg }} template: >
sudo_user: "{{ supervisor_user }}" src=supervisord.conf.j2 dest={{ supervisor_cfg }}
owner={{ supervisor_user }}
notify: supervisor | restart supervisor notify: supervisor | restart supervisor
- name: supervisor | create a symlink for supervisortctl - name: supervisor | create a symlink for supervisortctl
...@@ -78,5 +81,12 @@ ...@@ -78,5 +81,12 @@
dest={{ cfg_dir }}/{{ supervisor_cfg|basename }} dest={{ cfg_dir }}/{{ supervisor_cfg|basename }}
state=link state=link
- name: supervisor | create a symlink for supervisor cfg
file: >
src={{ supervisor_cfg_dir }}
dest={{ cfg_dir }}/supervisor.{{ supervisor_cfg_dir|basename }}
state=link
- name: supervisor | ensure supervisor is started - name: supervisor | ensure supervisor is started
service: name=supervisor state=started service: name=supervisor state=started
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment