summaryrefslogtreecommitdiff
path: root/playbooks/openbook.yaml
diff options
context:
space:
mode:
authorCarlos Konstanski <ckonstanski@pippiandcarlos.com>2017-11-13 16:50:55 -0700
committerCarlos Konstanski <ckonstanski@pippiandcarlos.com>2017-11-13 16:50:55 -0700
commitffa2a169ea98fb54a29d90ca158059e79e2816ba (patch)
tree018461d031b71178fa48b9672d8e39bac4de1270 /playbooks/openbook.yaml
initial commit
Diffstat (limited to 'playbooks/openbook.yaml')
-rw-r--r--playbooks/openbook.yaml212
1 files changed, 212 insertions, 0 deletions
diff --git a/playbooks/openbook.yaml b/playbooks/openbook.yaml
new file mode 100644
index 0000000..e7609cb
--- /dev/null
+++ b/playbooks/openbook.yaml
@@ -0,0 +1,212 @@
+---
+- name: "Install Openbook"
+ hosts: target
+ tasks:
+ - name: "Install network tools"
+ apt:
+ pkg: "{{ item }}"
+ state: present
+ with_items:
+ - netcat-openbsd
+ - lsof
+ when: ansible_distribution == "Ubuntu"
+
+ - name: "Install network tools"
+ yum:
+ name: "{{ item }}"
+ state: present
+ with_items:
+ - nmap-ncat
+ - lsof
+ when: ansible_distribution == "RedHat" or ansible_distribution == "CentOS"
+
+ - name: "Install network tools"
+ portage:
+ package: "{{ item }}"
+ update: yes
+ changed_use: yes
+ with_items:
+ - net-analyzer/netcat
+ - sys-process/lsof
+ when: ansible_distribution == "Gentoo"
+
+ - name: "Write hosts entry"
+ lineinfile:
+ dest: /etc/hosts
+ regexp: "{{ item.regexp }}"
+ line: "{{ item.line }}"
+ with_items:
+ - { regexp: '^127\.0\.0\.1.*$', line: "127.0.0.1 localhost {{ ansible_nodename }}" }
+
+ - name: "Create Openbook directories"
+ file:
+ path: "{{ item.path }}"
+ state: directory
+ mode: "{{ item.mode }}"
+ with_items:
+ - { path: /opt/openbook/database, mode: "0755" }
+ - { path: /opt/openbook/job_scheduler_server, mode: "0755" }
+ - { path: /opt/openbook/workflow_server, mode: "0755" }
+ - { path: /opt/openbook/admin_api_server, mode: "0755" }
+ - { path: /opt/openbook/customer_api_server, mode: "0755" }
+ - { path: /opt/openbook/admin_web_ui, mode: "0755" }
+ - { path: /opt/openbook/customer_web_ui, mode: "0755" }
+ - { path: /etc/openbook/database/conf.d, mode: "0755" }
+ - { path: /etc/openbook/database/bin, mode: "0755" }
+ - { path: /var/lib/mysql, mode: "0777" }
+ - { path: /var/log/mysql, mode: "0777" }
+ - { path: /etc/openbook/job-scheduler-server, mode: "0777" }
+ - { path: /etc/openbook/workflow-server, mode: "0777" }
+ - { path: /etc/openbook/admin-api-server, mode: "0777" }
+ - { path: /etc/openbook/customer-api-server, mode: "0777" }
+ - { path: /etc/openbook/admin-web-ui, mode: "0777" }
+ - { path: /etc/openbook/customer-web-ui, mode: "0777" }
+ - { path: /var/log/openbook/job-scheduler-server/job-scheduler-server.log, mode: "0777" }
+ - { path: /var/log/openbook/workflow-server/workflow-server.log, mode: "0777" }
+ - { path: /var/log/openbook/admin-api-server/admin-api-server.log, mode: "0777" }
+ - { path: /var/log/openbook/customer-api-server/customer-api-server.log, mode: "0777" }
+ - { path: /var/log/openbook/admin-web-ui/admin-web-ui.log, mode: "0777" }
+ - { path: /var/log/openbook/customer-web-ui/customer-web-ui.log, mode: "0777" }
+
+ - name: "Create Openbook files"
+ template:
+ src: "../templates/{{ item.src }}"
+ dest: "{{ item.dest }}"
+ mode: "{{ item.mode }}"
+ owner: root
+ group: root
+ with_items:
+ - { src: ci/./openbookctl, dest: /opt/openbook/openbookctl, mode: "0755" }
+ - { src: database/./run.sh, dest: /opt/openbook/database/run.sh, mode: "0755" }
+ - { src: job_scheduler_server/./run.sh, dest: /opt/openbook/job_scheduler_server/run.sh, mode: "0755" }
+ - { src: workflow_server/./run.sh, dest: /opt/openbook/workflow_server/run.sh, mode: "0755" }
+ - { src: admin_api_server/./run.sh, dest: /opt/openbook/admin_api_server/run.sh, mode: "0755" }
+ - { src: customer_api_server/./run.sh, dest: /opt/openbook/customer_api_server/run.sh, mode: "0755" }
+ - { src: admin_web_ui/./run.sh, dest: /opt/openbook/admin_web_ui/run.sh, mode: "0755" }
+ - { src: customer_web_ui/./run.sh, dest: /opt/openbook/customer_web_ui/run.sh, mode: "0755" }
+ - { src: job_scheduler_server//etc/openbook/job-scheduler-server/job-scheduler-server.json, dest: /etc/openbook/job-scheduler-server/job-scheduler-server.json, mode: "0644" }
+ - { src: workflow_server//etc/openbook/workflow-server/workflow-server.json, dest: /etc/openbook/workflow-server/workflow-server.json, mode: "0644" }
+ - { src: admin_api_server//etc/openbook/admin-api-server/admin-api-server.json, dest: /etc/openbook/admin-api-server/admin-api-server.json, mode: "0644" }
+ - { src: customer_api_server//etc/openbook/customer-api-server/customer-api-server.json, dest: /etc/openbook/customer-api-server/customer-api-server.json, mode: "0644" }
+ - { src: admin_web_ui//etc/openbook/admin-web-ui/admin-web-ui.json, dest: /etc/openbook/admin-web-ui/admin-web-ui.json, mode: "0644" }
+ - { src: customer_web_ui//etc/openbook/customer-web-ui/customer-web-ui.json, dest: /etc/openbook/customer-web-ui/customer-web-ui.json, mode: "0644" }
+ - { src: database//root/.my.cnf, dest: /root/.my.cnf, mode: "0644" }
+ - { src: database//etc/openbook/database/create_openbook_schemas.sql, dest: /etc/openbook/database/create_openbook_schemas.sql, mode: "0755" }
+ - { src: database//etc/openbook/database/debian.cnf, dest: /etc/openbook/database/debian.cnf, mode: "0644" }
+ - { src: database//etc/openbook/database/conf.d/cluster.cnf, dest: /etc/openbook/database/conf.d/cluster.cnf, mode: "0644" }
+ - { src: database//etc/openbook/database/conf.d/debconfrc, dest: /etc/openbook/database/conf.d/debconfrc, mode: "0644" }
+ - { src: database//etc/openbook/database/bin/fix_permissions.sh, dest: /etc/openbook/database/bin/fix_permissions.sh, mode: "0755" }
+ - { src: database//etc/openbook/database/bin/start_galera_node.sh, dest: /etc/openbook/database/bin/start_galera_node.sh, mode: "0755" }
+
+ - name: "Create Openbook files"
+ copy:
+ src: "../files/{{ item.src }}"
+ dest: "{{ item.dest }}"
+ mode: "{{ item.mode }}"
+ owner: root
+ group: root
+ with_items:
+ - { src: ci/./cloudcfg.sh, dest: /opt/openbook/cloudcfg.sh, mode: "0755" }
+ - { src: database//etc/openbook/database/my.cnf, dest: /etc/openbook/database/my.cnf, mode: "0644" }
+
+ - name: "Create Openbook init script: Ubuntu"
+ template:
+ src: "../templates/{{ item.src }}"
+ dest: "{{ item.dest }}"
+ mode: "{{ item.mode }}"
+ owner: root
+ group: root
+ with_items:
+ - { src: ci/./openbook.ubuntu, dest: /etc/init.d/openbook, mode: "0755" }
+ when: ansible_distribution == "Ubuntu"
+
+ - name: "Create Openbook init script: Redhat"
+ template:
+ src: "../templates/{{ item.src }}"
+ dest: "{{ item.dest }}"
+ mode: "{{ item.mode }}"
+ owner: root
+ group: root
+ with_items:
+ - { src: ci/./openbook.redhat, dest: /etc/init.d/openbook, mode: "0755" }
+ when: ansible_distribution == "RedHat" or ansible_distribution == "CentOS"
+
+ - name: "Create Openbook init script: Gentoo"
+ template:
+ src: "../templates/{{ item.src }}"
+ dest: "{{ item.dest }}"
+ mode: "{{ item.mode }}"
+ owner: root
+ group: root
+ with_items:
+ - { src: ci/./openbook.gentoo, dest: /etc/init.d/openbook, mode: "0755" }
+ when: ansible_distribution == "Gentoo"
+
+ - name: "Add service script to systemd"
+ shell: systemctl enable openbook
+ when: ansible_distribution == "Ubuntu" or ansible_distribution == "RedHat" or ansible_distribution == "CentOS"
+
+ - name: "Enable openbook service"
+ service:
+ name: "{{ item.name }}"
+ enabled: yes
+ runlevel: "{{ item.runlevel }}"
+ with_items:
+ - { name: openbook, runlevel: default }
+
+- name: "Stop Openbook"
+ hosts: "{{ groups['target']|sort(reverse=True) }}"
+ serial: 1
+ tasks:
+ - name: "Stop Openbook"
+ shell: |
+ /etc/init.d/openbook stop
+ for cont in $(docker ps | grep -v 'COMMAND' | awk '{print $1}'); do
+ docker stop ${cont}
+ done
+ docker container prune -f
+
+- name: "Install Openbook"
+ hosts: target
+ tasks:
+ - name: "Delete existing docker images"
+ shell: |
+ /opt/openbook/openbookctl stop || true
+ for i in $(docker images | grep -v CREATED | awk '{print $3}'); do
+ docker rmi --force $i
+ done
+ docker container prune -f
+ ignore_errors: True
+
+ - name: "Pull docker images"
+ shell: |
+ docker login --username "{{ openbook_docker_registry_username }}" --password "{{ openbook_docker_registry_password }}" "{{ openbook_docker_registry_url }}"
+ if [ "{{ openbook_install_database|string() }}" == "True" ]; then
+ docker pull "{{ openbook_docker_registry_url }}/openbook_database"
+ fi
+ if [ "{{ openbook_install_job_scheduler_server|string() }}" == "True" ]; then
+ docker pull "{{ openbook_docker_registry_url }}/openbook_job_scheduler_server_unstable"
+ fi
+ if [ "{{ openbook_install_workflow_server|string() }}" == "True" ]; then
+ docker pull "{{ openbook_docker_registry_url }}/openbook_workflow_server_unstable"
+ fi
+ if [ "{{ openbook_install_admin_api_server|string() }}" == "True" ]; then
+ docker pull "{{ openbook_docker_registry_url }}/openbook_admin_api_server_unstable"
+ fi
+ if [ "{{ openbook_install_customer_api_server|string() }}" == "True" ]; then
+ docker pull "{{ openbook_docker_registry_url }}/openbook_customer_api_server_unstable"
+ fi
+ if [ "{{ openbook_install_admin_web_ui|string() }}" == "True" ]; then
+ docker pull "{{ openbook_docker_registry_url }}/openbook_admin_web_ui_unstable"
+ fi
+ if [ "{{ openbook_install_customer_web_ui|string() }}" == "True" ]; then
+ docker pull "{{ openbook_docker_registry_url }}/openbook_customer_web_ui_unstable"
+ fi
+
+- name: "Start Openbook"
+ hosts: "{{ groups['target']|sort }}"
+ serial: 1
+ tasks:
+ - name: "Start Openbook"
+ shell: /etc/init.d/openbook start
+ when: openbook_start_app == True