--- - hosts: localhost vars_files: - "/etc/distbuild/distbuild.conf" tasks: - set_fact: ARTIFACT_CACHE_SERVER={{ TROVE_HOST }} when: ARTIFACT_CACHE_SERVER is not defined - name: Create mountpoint for extra disk space /srv/distbuild/ file: path=/srv/distbuild state=directory owner=root group=root mode=0755 - name: Create the morph and morph-cache-server configuration files template: src=/usr/share/distbuild-setup/{{ item }} dest=/etc/{{ item }} with_items: - morph.conf - morph-cache-server.conf - name: Link the morph log file file: src=/srv/distbuild/morph.log dest=/var/log/morph.log state=link force=yes - name: Create the controller configuration files template: src=/usr/share/distbuild-setup/{{ item }} dest=/etc/{{ item }} with_items: - morph-controller.conf - morph-controller-helper.conf when: DISTBUILD_CONTROLLER - name: Link the controller log files file: src=/srv/distbuild/{{ item }} dest=/var/log/{{ item }} state=link force=yes with_items: - morph-controller.log - morph-controller-helper.log when: DISTBUILD_CONTROLLER - name: Create the worker configuration files template: src=/usr/share/distbuild-setup/{{ item }} dest=/etc/{{ item }} with_items: - morph-worker.conf - morph-worker-helper.conf when: DISTBUILD_WORKER - name: Link the controller log files file: src=/srv/distbuild/{{ item }} dest=/var/log/{{ item }} state=link force=yes with_items: - morph-worker.log - morph-worker-helper.log when: DISTBUILD_WORKER - name: Create /root/.ssh directory file: path=/root/.ssh state=directory owner=root group=root mode=0700 - name: Copy the worker ssh key copy: src={{ WORKER_SSH_KEY }} dest=/root/.ssh/id_rsa owner=root group=root mode=0600 - name: Create ssh public key shell: ssh-keygen -y -f /root/.ssh/id_rsa > /root/.ssh/id_rsa.pub creates=/root/.ssh/id_rsa.pub - name: Add trove's host key shell: | trove_key="$(ssh-keyscan -t dsa,ecdsa,rsa {{ TROVE_HOST|quote }})" if [ -n "$trove_key" ]; then echo "$trove_key" > /etc/ssh/ssh_known_hosts fi creates=/etc/ssh/ssh_known_hosts # This is a kludge. We can add the host key for the TROVE_HOST that was # specified, but users may access the Trove by other names, e.g. IP address # or domain name. Distbuild is currently not safe to run except on a private # network where host key checking is not important, so we disable it by # default to avoid errors when users don't stick to using the exact same # TROVE_HOST in repo URLs. - name: Disable strict SSH host key checking lineinfile: dest: /etc/ssh/ssh_config line: StrictHostKeyChecking no - name: Enable the morph-cache-server service service: name=morph-cache-server.service enabled=yes register: morph_cache_server_service - name: Restart the morph-cache-server service service: name=morph-cache-server state=restarted when: morph_cache_server_service|changed - name: Enable the morph-worker service service: name=morph-worker.service enabled=yes register: morph_worker_service when: DISTBUILD_WORKER - name: Restart the morph-worker service service: name=morph-worker state=restarted when: morph_worker_service|changed - name: Enable the morph-worker-helper service service: name=morph-worker-helper.service enabled=yes register: morph_worker_helper_service when: DISTBUILD_WORKER - name: Restart the morph-worker-helper service service: name=morph-worker-helper state=restarted when: morph_worker_helper_service|changed - name: Enable the morph-controller service service: name=morph-controller.service enabled=yes register: morph_controller_service when: DISTBUILD_CONTROLLER - name: Restart the morph-controller service service: name=morph-controller state=restarted when: morph_controller_service|changed - name: Enable the morph-controller-helper service service: name=morph-controller-helper.service enabled=yes register: morph_controller_helper_service when: DISTBUILD_CONTROLLER - name: Restart the morph-controller-helper service service: name=morph-controller-helper state=restarted when: morph_controller_helper_service|changed