diff options
| author | Carlos Konstanski <ckonstanski@pippiandcarlos.com> | 2017-11-13 16:50:55 -0700 |
|---|---|---|
| committer | Carlos Konstanski <ckonstanski@pippiandcarlos.com> | 2017-11-13 16:50:55 -0700 |
| commit | ffa2a169ea98fb54a29d90ca158059e79e2816ba (patch) | |
| tree | 018461d031b71178fa48b9672d8e39bac4de1270 /playbooks/openbook.yaml | |
initial commit
Diffstat (limited to 'playbooks/openbook.yaml')
| -rw-r--r-- | playbooks/openbook.yaml | 212 |
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 |
