From 48a4b547d84f9469d0bda0ba9a151a8cd195ff5c Mon Sep 17 00:00:00 2001 From: Pedro Alvarez Date: Tue, 9 Sep 2014 15:37:07 +0000 Subject: Configure Mason with Ansible --- mason/ansible/hosts | 1 + mason/ansible/mason-setup.yml | 56 +++++++++++++++++++++++++++++++++++++++++++ mason/mason-setup.service | 16 +++++++++++++ mason/share/mason.conf | 12 ++++++++++ 4 files changed, 85 insertions(+) create mode 100644 mason/ansible/hosts create mode 100644 mason/ansible/mason-setup.yml create mode 100644 mason/mason-setup.service create mode 100644 mason/share/mason.conf diff --git a/mason/ansible/hosts b/mason/ansible/hosts new file mode 100644 index 00000000..5b97818d --- /dev/null +++ b/mason/ansible/hosts @@ -0,0 +1 @@ +localhost ansible_connection=local diff --git a/mason/ansible/mason-setup.yml b/mason/ansible/mason-setup.yml new file mode 100644 index 00000000..70c77871 --- /dev/null +++ b/mason/ansible/mason-setup.yml @@ -0,0 +1,56 @@ +--- +- hosts: localhost + vars_files: + - "/etc/mason/mason.conf" + tasks: + + + - fail: msg='TROVE_ID is mandatory' + when: TROVE_ID is not defined + + - fail: msg='TROVE_HOST is mandatory' + when: TROVE_HOST is not defined + + - fail: msg='ARTIFACT_CACHE_SERVER is mandatory' + when: ARTIFACT_CACHE_SERVER is not defined + + - fail: msg='MASON_CLUSTER_MORPHOLOGY is mandatory' + when: MASON_CLUSTER_MORPHOLOGY is not defined + + - fail: msg='MASON_DEFINITIONS_REF is mandatory' + when: MASON_DEFINITIONS_REF is not defined + + - fail: msg='MASON_DISTBUILD_ARCH is mandatory' + when: MASON_DISTBUILD_ARCH is not defined + + - fail: msg='MASON_TEST_HOST is mandatory' + when: MASON_TEST_HOST is not defined + + - fail: msg='CONTROLLERHOST is mandatory' + when: CONTROLLERHOST is not defined + + - name: Create the Mason configuration file + template: src=/usr/share/mason-setup/{{ item }} dest=/etc/{{ item }} + with_items: + - mason.conf + + - name: Enable the mason service + service: name=mason.service enabled=yes + register: mason_service + - name: Restart the mason service + service: name=mason.service state=restarted + when: mason_service|changed + + - name: Enable the mason timer + service: name=mason.timer enabled=yes + register: mason_timer + - name: Restart the mason timer + service: name=mason.timer state=restarted + when: mason_timer|changed + + - name: Enable the httpd service + service: name=httpd.service enabled=yes + register: httpd_service + - name: Restart the httpd service + service: name=httpd state=restarted + when: httpd_service|changed diff --git a/mason/mason-setup.service b/mason/mason-setup.service new file mode 100644 index 00000000..60403bde --- /dev/null +++ b/mason/mason-setup.service @@ -0,0 +1,16 @@ +[Unit] +Description=Run mason-setup Ansible scripts +Requires=network.target +After=network.target +Requires=opensshd.service +After=opensshd.service + +# If there's a shared /var subvolume, it must be mounted before this +# unit runs. +Requires=local-fs.target +After=local-fs.target + +ConditionPathExists=/etc/mason/mason.conf + +[Service] +ExecStart=/usr/bin/ansible-playbook -v -i /usr/lib/mason-setup/ansible/hosts /usr/lib/mason-setup/ansible/mason-setup.yml diff --git a/mason/share/mason.conf b/mason/share/mason.conf new file mode 100644 index 00000000..b323896d --- /dev/null +++ b/mason/share/mason.conf @@ -0,0 +1,12 @@ +# This file is generarated by the mason-setup systemd unit. +# If you want to change the configuration, change the configuration +# in /etc/mason/mason.conf and restart the service. + +ARTIFACT_CACHE_SERVER={{ ARTIFACT_CACHE_SERVER|quote }} +UPSTREAM_TROVE_ADDRESS={{ TROVE_HOST|quote }} +DEFINITIONS_REF={{ MASON_DEFINITIONS_REF|quote }} +DISTBUILD_ARCH={{ MASON_DISTBUILD_ARCH|quote }} +DISTBUILD_CONTROLLER_ADDRESS={{ CONTROLLERHOST|quote }} +TROVE_ID={{ TROVE_ID|quote }} +BUILD_CLUSTER_MORPHOLOGY={{ MASON_CLUSTER_MORPHOLOGY|quote }} +TEST_VM_HOST_SSH_URL={{ MASON_TEST_HOST|quote }} -- cgit v1.2.1