Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
configuration
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
configuration
Commits
63f29122
Commit
63f29122
authored
11 years ago
by
John Jarvis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
switching forum to use supervisor, www-data perms for rbenv for forum
parent
92a0e393
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
67 additions
and
41 deletions
+67
-41
playbooks/roles/forum/defaults/main.yml
+2
-0
playbooks/roles/forum/handlers/main.yml
+5
-2
playbooks/roles/forum/meta/main.yml
+3
-1
playbooks/roles/forum/tasks/deploy.yml
+19
-4
playbooks/roles/forum/tasks/main.yml
+0
-18
playbooks/roles/forum/templates/forum_env.j2
+2
-2
playbooks/roles/rbenv/defaults/main.yml
+5
-4
playbooks/roles/rbenv/tasks/main.yml
+1
-0
playbooks/roles/supervisor/defaults/main.yml
+3
-2
playbooks/roles/supervisor/tasks/main.yml
+21
-3
playbooks/roles/supervisor/templates/forum.conf.j2
+2
-1
playbooks/roles/supervisor/templates/supervisor-upstart.conf.j2
+1
-1
playbooks/roles/supervisor/templates/supervisord.conf.j2
+3
-3
No files found.
playbooks/roles/forum/defaults/main.yml
View file @
63f29122
...
@@ -6,6 +6,7 @@ forum_rbenv_dir: "{{ forum_app_dir }}"
...
@@ -6,6 +6,7 @@ forum_rbenv_dir: "{{ forum_app_dir }}"
forum_rbenv_root
:
"
{{
forum_app_dir
}}/.rbenv"
forum_rbenv_root
:
"
{{
forum_app_dir
}}/.rbenv"
forum_rbenv_shims
:
"
{{
forum_rbenv_root
}}/shims"
forum_rbenv_shims
:
"
{{
forum_rbenv_root
}}/shims"
forum_rbenv_bin
:
"
{{
forum_rbenv_root
}}/bin"
forum_rbenv_bin
:
"
{{
forum_rbenv_root
}}/bin"
forum_supervisor_wrapper
:
"
{{
forum_app_dir
}}/forum-supervisor.sh"
forum_gem_root
:
"
{{
forum_rbenv_dir
}}/.gem"
forum_gem_root
:
"
{{
forum_rbenv_dir
}}/.gem"
forum_gem_bin
:
"
{{
forum_gem_root
}}/bin"
forum_gem_bin
:
"
{{
forum_gem_root
}}/bin"
forum_path
:
"
{{
forum_code_dir
}}/bin:{{
forum_rbenv_bin
}}:{{
forum_rbenv_shims
}}:{{
forum_gem_bin
}}:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
forum_path
:
"
{{
forum_code_dir
}}/bin:{{
forum_rbenv_bin
}}:{{
forum_rbenv_shims
}}:{{
forum_gem_bin
}}:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
...
@@ -22,6 +23,7 @@ forum_environment:
...
@@ -22,6 +23,7 @@ forum_environment:
API_KEY
:
"
{{
forum_api_key
}}"
API_KEY
:
"
{{
forum_api_key
}}"
SEARCH_SERVER
:
"
{{
forum_elasticsearch_url
}}"
SEARCH_SERVER
:
"
{{
forum_elasticsearch_url
}}"
MONGOHQ_URL
:
"
{{
forum_mongo_url
}}"
MONGOHQ_URL
:
"
{{
forum_mongo_url
}}"
HOME
:
"
{{
forum_app_dir
}}"
forum_user
:
"
forum"
forum_user
:
"
forum"
forum_ruby_version
:
"
1.9.3-p448"
forum_ruby_version
:
"
1.9.3-p448"
...
...
This diff is collapsed.
Click to expand it.
playbooks/roles/forum/handlers/main.yml
View file @
63f29122
---
---
-
name
:
forum | restart the forum service
-
name
:
forum | restart the forum service
service
:
name=cs_comments_service state=restarted
supervisorctl
:
>
name=forum
supervisorctl_path={{ supervisor_ctl }}
config={{ supervisor_cfg }}
state=restarted
This diff is collapsed.
Click to expand it.
playbooks/roles/forum/meta/main.yml
View file @
63f29122
---
---
dependencies
:
dependencies
:
-
role
:
rbenv
-
role
:
rbenv
rbenv_user
:
"
{{
forum_user
}}"
# TODO: setting the rbenv ownership to
# the common_web_user is a workaround
rbenv_user
:
"
{{
common_web_user
}}"
rbenv_dir
:
"
{{
forum_app_dir
}}"
rbenv_dir
:
"
{{
forum_app_dir
}}"
rbenv_ruby_version
:
"
{{
forum_ruby_version
}}"
rbenv_ruby_version
:
"
{{
forum_ruby_version
}}"
This diff is collapsed.
Click to expand it.
playbooks/roles/forum/tasks/deploy.yml
View file @
63f29122
...
@@ -5,20 +5,35 @@
...
@@ -5,20 +5,35 @@
tags
:
tags
:
-
deploy
-
deploy
-
name
:
forum | create the supervisor wrapper
template
:
>
src={{ forum_supervisor_wrapper|basename }}.j2
dest={{ forum_supervisor_wrapper }}
mode=0755
sudo_user
:
"
{{
forum_user
}}"
notify
:
-
forum | restart the forum service
-
name
:
forum | git checkout forum repo into {{ forum_code_dir }}
-
name
:
forum | git checkout forum repo into {{ forum_code_dir }}
git
:
dest={{ forum_code_dir }} repo={{ forum_source_repo }} version={{ forum_version }}
git
:
dest={{ forum_code_dir }} repo={{ forum_source_repo }} version={{ forum_version }}
sudo_user
:
"
{{
forum_user
}}"
sudo_user
:
"
{{
forum_user
}}"
tags
:
tags
:
-
deploy
-
deploy
# TODO: This is done as the common_web_user
# since the process owner needs write access
# to the rbenv
-
name
:
forum | install comments service bundle
-
name
:
forum | install comments service bundle
shell
:
bundle install chdir={{ forum_code_dir }}
shell
:
bundle install chdir={{ forum_code_dir }}
sudo_user
:
"
{{
forum
_user
}}"
sudo_user
:
"
{{
common_web
_user
}}"
environment
:
"
{{
forum_environment
}}"
environment
:
"
{{
forum_environment
}}"
tags
:
tags
:
-
deploy
-
deploy
-
name
:
forum | restart the forum service
-
name
:
forum | restart the forum service
service
:
name=cs_comments_service state=restarted
supervisorctl
:
>
tags
:
name=forum
-
deploy
supervisorctl_path={{ supervisor_ctl }}
config={{ supervisor_cfg }}
state=restarted
This diff is collapsed.
Click to expand it.
playbooks/roles/forum/tasks/main.yml
View file @
63f29122
...
@@ -41,23 +41,5 @@
...
@@ -41,23 +41,5 @@
notify
:
notify
:
-
forum | restart the forum service
-
forum | restart the forum service
-
name
:
forum | copy cs_comments_service SysVunit script
template
:
src=cs_comments_service.j2 dest=/etc/init.d/cs_comments_service owner=root group=root mode=750
notify
:
-
forum | restart the forum service
tags
:
-
forum
-
install
when
:
ansible_distribution == 'Debian'
-
name
:
forum | copy cs_comments_service upstart script
template
:
src=cs_comments_service.conf.j2 dest=/etc/init/cs_comments_service.conf owner=root group=root mode=644
notify
:
-
forum | restart the forum service
tags
:
-
forum
-
install
when
:
ansible_distribution == 'Ubuntu'
-
include
:
deploy.yml
-
include
:
deploy.yml
-
include
:
test.yml
-
include
:
test.yml
This diff is collapsed.
Click to expand it.
playbooks/roles/forum/templates/forum_env.j2
View file @
63f29122
# {{ ansible_managed }}
# {{ ansible_managed }}
{% for name,value in forum_environment.items() %}
{% for name,value in forum_environment.items() %}
{% if value %}
{%
-
if value %}
export {{ name }}="{{ value }}"
export {{ name }}="{{ value }}"
{% endif %}
{%
-
endif %}
{% endfor %}
{% endfor %}
eval "$(rbenv init -)"
eval "$(rbenv init -)"
This diff is collapsed.
Click to expand it.
playbooks/roles/rbenv/defaults/main.yml
View file @
63f29122
...
@@ -17,7 +17,8 @@ rbenv_debian_pkgs:
...
@@ -17,7 +17,8 @@ rbenv_debian_pkgs:
-
libxslt1-dev
-
libxslt1-dev
-
zlib1g-dev
-
zlib1g-dev
rbenv_environment
:
rbenv_environment
:
RBENV_ROOT
:
$rbenv_root
RBENV_ROOT
:
"
{{
rbenv_root
}}"
GEM_ROOT
:
$rbenv_gem_root
GEM_ROOT
:
"
{{
rbenv_gem_root
}}"
GEM_HOME
:
$rbenv_gem_root
GEM_HOME
:
"
{{
rbenv_gem_root
}}"
PATH
:
$rbenv_path
PATH
:
"
{{
rbenv_path
}}"
HOME
:
"
{{
rbenv_root
}}"
This diff is collapsed.
Click to expand it.
playbooks/roles/rbenv/tasks/main.yml
View file @
63f29122
...
@@ -40,6 +40,7 @@
...
@@ -40,6 +40,7 @@
home={{ rbenv_dir }}
home={{ rbenv_dir }}
shell=/bin/false
shell=/bin/false
createhome=no
createhome=no
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
:
>
...
...
This diff is collapsed.
Click to expand it.
playbooks/roles/supervisor/defaults/main.yml
View file @
63f29122
...
@@ -11,16 +11,17 @@
...
@@ -11,16 +11,17 @@
# Defaults for role supervisor
# Defaults for role supervisor
#
#
---
---
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
:
"
{{
venvs_dir
}}/supervisor"
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"
# by default supervisor runs as the web user
# by default supervisor runs as the web user
# which by default is set to www-data in
# which by default is set to www-data in
# the common role
# the common role
supervisor_user
:
"
{{
common_web_user
}}"
supervisor_user
:
supervisor
supervisor_log_dir
:
"
{{
log_dir
}}/supervisor"
supervisor_log_dir
:
"
{{
log_dir
}}/supervisor"
supervisor_cfg
:
"
{{
supervisor_app_dir
}}/supervisord.conf"
supervisor_cfg
:
"
{{
supervisor_app_dir
}}/supervisord.conf"
This diff is collapsed.
Click to expand it.
playbooks/roles/supervisor/tasks/main.yml
View file @
63f29122
...
@@ -29,32 +29,50 @@
...
@@ -29,32 +29,50 @@
-
fail
:
supervisor_servers is a required parameter for this role
-
fail
:
supervisor_servers is a required parameter for this role
when
:
supervisor_servers is not defined
when
:
supervisor_servers is not defined
-
name
:
supervisor | create application user
user
:
>
name="{{ supervisor_user }}"
home="{{ supervisor_app_dir }}"
createhome=no
shell=/bin/false
-
name
:
supervisor | create supervisor directories
-
name
:
supervisor | create supervisor directories
file
:
>
file
:
>
name={{ item }}
name={{ item }}
state=directory
state=directory
owner={{ supervisor_user }}
owner={{ supervisor_user }}
group={{
supervisor
_user }}
group={{
common_web
_user }}
with_items
:
with_items
:
-
"
{{
supervisor_app_dir
}}"
-
"
{{
supervisor_app_dir
}}"
-
"
{{
supervisor_cfg_dir
}}"
-
"
{{
supervisor_cfg_dir
}}"
-
"
{{
superivsor_data_dir
}}"
-
"
{{
supervisor_venvs_dir
}}"
-
"
{{
supervisor_venvs_dir
}}"
-
name
:
supervisor | create supervisor directories
file
:
>
name={{ item }}
state=directory
owner={{ common_web_user }}
group={{ supervisor_user }}
with_items
:
-
"
{{
supervisor_data_dir
}}"
-
"
{{
supervisor_log_dir
}}"
-
"
{{
supervisor_log_dir
}}"
-
name
:
supervisor | install supervisor in its venv
-
name
:
supervisor | install supervisor in its venv
pip
:
name=supervisor virtualenv="{{supervisor_venv_dir}}" state=present
pip
:
name=supervisor virtualenv="{{supervisor_venv_dir}}" state=present
sudo_user
:
"
{{
supervisor_user
}}"
-
name
:
supervisor | create supervisor upstart job
-
name
:
supervisor | create supervisor upstart job
template
:
src=supervisor-upstart.conf.j2 dest=
{{ supervisor_cfg }}
template
:
src=supervisor-upstart.conf.j2 dest=
/etc/init/supervisor.conf
-
name
:
supervisor | create supervisor master config
-
name
:
supervisor | create supervisor master config
template
:
src=supervisord.conf.j2 dest={{ supervisor_cfg }}
template
:
src=supervisord.conf.j2 dest={{ supervisor_cfg }}
sudo_user
:
"
{{
supervisor_user
}}"
-
name
:
supervisor | create supervisor configs
-
name
:
supervisor | create supervisor configs
template
:
src={{ item }}.conf.j2 dest={{ supervisor_cfg_dir }}/{{ item }}.conf
template
:
src={{ item }}.conf.j2 dest={{ supervisor_cfg_dir }}/{{ item }}.conf
with_items
:
supervisor_servers
with_items
:
supervisor_servers
sudo_user
:
"
{{
supervisor_user
}}"
-
name
:
supervisor | ensure supervisor is started
-
name
:
supervisor | ensure supervisor is started
service
:
name=supervisor state=started
service
:
name=supervisor state=started
This diff is collapsed.
Click to expand it.
playbooks/roles/supervisor/templates/forum.conf.j2
View file @
63f29122
[program:forum]
[program:forum]
command={{ forum_rbenv_shims }}/ruby app.rb
command={{ forum_supervisor_wrapper }}
priority=999
priority=999
startsecs = 5
startsecs = 5
redirect_stderr = True
redirect_stderr = True
...
...
This diff is collapsed.
Click to expand it.
playbooks/roles/supervisor/templates/supervisor-upstart.conf.j2
View file @
63f29122
...
@@ -4,5 +4,5 @@ start on runlevel [2345]
...
@@ -4,5 +4,5 @@ start on runlevel [2345]
stop on runlevel [!2345]
stop on runlevel [!2345]
respawn
respawn
setuid {{
supervisor
_user }}
setuid {{
common_web
_user }}
exec {{ supervisor_venv_dir }}/bin/supervisord --nodaemon --configuration {{ supervisor_cfg }}
exec {{ supervisor_venv_dir }}/bin/supervisord --nodaemon --configuration {{ supervisor_cfg }}
This diff is collapsed.
Click to expand it.
playbooks/roles/supervisor/templates/supervisord.conf.j2
View file @
63f29122
...
@@ -6,8 +6,8 @@ chmod=0700 ; sockef file mode (default 0700)
...
@@ -6,8 +6,8 @@ chmod=0700 ; sockef file mode (default 0700)
[supervisord]
[supervisord]
logfile={{ supervisor_log_dir }}/supervisord.log ; (main log file;default $CWD/supervisord.log)
logfile={{ supervisor_log_dir }}/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=
/var/run
/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
pidfile=
{{ supervisor_data_dir }}
/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=
/var/log/supervisor
; ('AUTO' child log dir, default $TEMP)
childlogdir=
{{ supervisor_log_dir }}
; ('AUTO' child log dir, default $TEMP)
; the below section must remain in the config file for RPC
; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; (supervisorctl/web interface) to work, additional interfaces may be
...
@@ -16,7 +16,7 @@ childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEM
...
@@ -16,7 +16,7 @@ childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEM
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
[supervisorctl]
serverurl=unix://
/var/run/
/supervisor.sock ; use a unix:// URL for a unix socket
serverurl=unix://
{{ supervisor_data_dir }}
/supervisor.sock ; use a unix:// URL for a unix socket
; The [include] section can just contain the "files" setting. This
; The [include] section can just contain the "files" setting. This
; setting can list multiple files (separated by whitespace or
; setting can list multiple files (separated by whitespace or
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment