Commit 5bc2c072 by Arbab Nazar Committed by GitHub

Merge pull request #3150 from edx/arbab/supervisor-rewrite

writing ansible tasks using YAML syntax
parents af760deb d434fb99
...@@ -50,58 +50,40 @@ ...@@ -50,58 +50,40 @@
# supervisor_service: upstart-service-name # supervisor_service: upstart-service-name
# #
--- ---
- name: create application user - name: Create application and supervisor service user
user: > user:
name="{{ supervisor_user }}" name: "{{ item }}"
createhome=no createhome: no
shell=/bin/false shell: /bin/false
tags: with_items:
- install - "{{ supervisor_user }}"
- install:base - "{{ supervisor_service_user }}"
- name: create supervisor service user
user: >
name="{{ supervisor_service_user }}"
createhome=no
shell=/bin/false
tags: tags:
- install - install
- install:base - install:base
- name: create supervisor directories - name: Create supervisor and service user accessible directories
file: > file:
name={{ item }} path: "{{ item }}"
state=directory state: directory
owner={{ supervisor_user }} owner: "{{ supervisor_user }}"
group={{ supervisor_service_user }} group: "{{ supervisor_service_user }}"
mode="755" mode: "0755"
with_items: with_items:
- "{{ supervisor_app_dir }}" - "{{ supervisor_app_dir }}"
- "{{ supervisor_venv_dir }}" - "{{ supervisor_venv_dir }}"
tags:
- install
- install:base
- name: create service user accessible dirs
file: >
name={{ item }}
state=directory
owner={{ supervisor_user }}
group={{ supervisor_service_user }}
mode="775"
with_items:
- "{{ supervisor_cfg_dir }}" - "{{ supervisor_cfg_dir }}"
- "{{ supervisor_available_dir }}" - "{{ supervisor_available_dir }}"
tags: tags:
- install - install
- install:base - install:base
- name: create supervisor directories - name: Create supervisor directories
file: > file:
name={{ item }} path: "{{ item }}"
state=directory state: directory
owner={{ supervisor_service_user }} owner: "{{ supervisor_service_user }}"
group={{ supervisor_user }} group: "{{ supervisor_user }}"
with_items: with_items:
- "{{ supervisor_data_dir }}" - "{{ supervisor_data_dir }}"
- "{{ supervisor_log_dir }}" - "{{ supervisor_log_dir }}"
...@@ -109,7 +91,7 @@ ...@@ -109,7 +91,7 @@
- install - install
- install:base - install:base
- name: install supervisor in its venv - name: Install supervisor in its venv
pip: pip:
name: supervisor name: supervisor
version: "{{ supervisor_version }}" version: "{{ supervisor_version }}"
...@@ -121,20 +103,24 @@ ...@@ -121,20 +103,24 @@
- install - install
- install:base - install:base
- name: install supervisor in its venv - name: Install supervisor in its venv
pip: > pip:
name={{ item }} virtualenv="{{ supervisor_venv_dir }}" state=present name: "{{ item }}"
extra_args="-i {{ COMMON_PYPI_MIRROR_URL }}" virtualenv: "{{ supervisor_venv_dir }}"
state: present
extra_args: "-i {{ COMMON_PYPI_MIRROR_URL }}"
become_user: "{{ supervisor_user }}" become_user: "{{ supervisor_user }}"
with_items: supervisor_pip_pkgs with_items: "{{ supervisor_pip_pkgs }}"
tags: tags:
- install - install
- install:base - install:base
- name: create supervisor upstart job - name: Create supervisor upstart job
template: > template:
src=etc/init/supervisor-upstart.conf.j2 dest=/etc/init/{{ supervisor_service }}.conf src: "etc/init/supervisor-upstart.conf.j2"
owner=root group=root dest: "/etc/init/{{ supervisor_service }}.conf"
owner: root
group: root
tags: tags:
- install - install
- install:base - install:base
...@@ -143,75 +129,79 @@ ...@@ -143,75 +129,79 @@
# tags and enables services based on the 'services' tag # tags and enables services based on the 'services' tag
# on instance startup. # on instance startup.
- name: create pre_supervisor upstart job - name: create pre_supervisor upstart job
template: > template:
src=etc/init/pre_supervisor.conf.j2 dest=/etc/init/pre_supervisor.conf src: "etc/init/pre_supervisor.conf.j2"
owner=root group=root dest: "/etc/init/pre_supervisor.conf"
owner: root
group: root
when: supervisor_service == "supervisor" and disable_edx_services and not devstack when: supervisor_service == "supervisor" and disable_edx_services and not devstack
tags: tags:
- to-remove - to-remove
- aws-specfic - aws-specfic
- name: write the pre_suprevisor python script - name: Write the pre_suprevisor python script
copy: > copy:
src=pre_supervisor_checks.py src: pre_supervisor_checks.py
dest={{ supervisor_app_dir }}/pre_supervisor_checks.py dest: "{{ supervisor_app_dir }}/pre_supervisor_checks.py"
mode=0750 owner: "{{ supervisor_user }}"
owner={{ supervisor_user }} group: "{{ supervisor_service_user }}"
group={{ supervisor_service_user }} mode: "0750"
when: disable_edx_services when: disable_edx_services
tags: tags:
- to-remove - to-remove
- aws-specfic - aws-specfic
- name: create supervisor master config - name: Create supervisor master config
template: > template:
src=edx/app/supervisor/supervisord.conf.j2 dest={{ supervisor_cfg }} src: "edx/app/supervisor/supervisord.conf.j2"
owner={{ supervisor_user }} group={{ supervisor_service_user }} dest: "{{ supervisor_cfg }}"
mode=0644 owner: "{{ supervisor_user }}"
group: "{{ supervisor_service_user }}"
mode: "0644"
tags: tags:
- install - install
- install:config - install:config
- name: create a symlink for supervisortctl # this link is deprecated in favor of the shell wrapper
# these links are deprecated in favor of the shell wrapper - name: Remove a symlink for supervisortctl
file: > file:
src={{ supervisor_ctl }} src: "{{ supervisor_ctl }}"
dest={{ COMMON_BIN_DIR }}/{{ supervisor_ctl|basename }} dest: "{{ COMMON_BIN_DIR }}/{{ supervisor_ctl | basename }}"
state=absent state: absent
when: supervisor_service == "supervisor" when: supervisor_service == "supervisor"
tags: tags:
- install - install
- install:config - install:config
- name: create a symlink for supervisor cfg # these links are deprecated in favor of the shell wrapper
# these links are deprecated in favor of the shell wrapper - name: Remove symlink for supervisor cfg
file: > file:
src={{ item }} src: "{{ item }}"
dest={{ COMMON_CFG_DIR }}/{{ item|basename }} dest: "{{ COMMON_CFG_DIR }}/{{ item | basename }}"
state=absent state: absent
when: supervisor_service == "supervisor" when: supervisor_service == "supervisor"
with_items: with_items:
- "{{ supervisor_cfg }}" - "{{ supervisor_cfg }}"
- "{{ supervisor_cfg_dir }}" - "{{ supervisor_cfg_dir }}"
tags: tags:
- install - install
- install:config - install:config
- name: create helper script for running supervisor - name: Create helper script for running supervisor
template: > template:
src=edx/bin/supervisorctl.j2 src: "edx/bin/supervisorctl.j2"
dest={{ COMMON_BIN_DIR }}/supervisorctl dest: "{{ COMMON_BIN_DIR }}/supervisorctl"
owner={{ supervisor_service_user }} owner: "{{ supervisor_service_user }}"
mode=0755 mode: "0755"
when: supervisor_service == "supervisor" when: supervisor_service == "supervisor"
tags: tags:
- install - install
- install:config - install:config
- name: start supervisor - name: Start supervisor
service: > service:
name={{ supervisor_service }} name: "{{ supervisor_service }}"
state=started state: started
register: start_supervisor register: start_supervisor
tags: tags:
- manage - manage
...@@ -219,8 +209,10 @@ ...@@ -219,8 +209,10 @@
# calling update on supervisor too soon after it # calling update on supervisor too soon after it
# starts will result in an errror. # starts will result in an errror.
- name: wait for web port to be available - name: Wait for web port to be available
wait_for: port={{ supervisor_http_bind_port }} timeout=5 wait_for:
port: "{{ supervisor_http_bind_port }}"
timeout: 5
when: start_supervisor.changed when: start_supervisor.changed
tags: tags:
- manage - manage
...@@ -232,7 +224,7 @@ ...@@ -232,7 +224,7 @@
# we don't use notifications for supervisor because # we don't use notifications for supervisor because
# they don't work well with parameterized roles. # they don't work well with parameterized roles.
# See https://github.com/ansible/ansible/issues/4853 # See https://github.com/ansible/ansible/issues/4853
- name: update supervisor configuration - name: Update supervisor configuration
shell: "{{ supervisor_ctl }} -c {{ supervisor_cfg }} update" shell: "{{ supervisor_ctl }} -c {{ supervisor_cfg }} update"
register: supervisor_update register: supervisor_update
changed_when: supervisor_update.stdout is defined and supervisor_update.stdout != "" changed_when: supervisor_update.stdout is defined and supervisor_update.stdout != ""
......
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