Paillasse/ansible/roles/correcteur/tasks/main.yml

80 lines
2.4 KiB
YAML
Raw Permalink Normal View History

---
# Étape 11 : service de correction sur l'hyperviseur. Il tourne en root :
# il lui faut `docker exec nova_libvirt virsh` (agent invité QEMU).
- name: créer le dossier du code source
ansible.builtin.file:
path: "{{ correcteur_dossier }}"
state: directory
owner: "{{ ansible_user }}"
group: "{{ ansible_user }}"
mode: "0755"
- name: synchroniser le code source
become: false
ansible.posix.synchronize:
src: "{{ playbook_dir }}/../correcteur/"
dest: "{{ correcteur_dossier }}/"
delete: true
rsync_opts:
- "--exclude=/correcteur"
- "--exclude=/correcteur-linux-amd64"
notify: redémarrer correcteur
# Cache et modules Go dans /root, pas dans le dossier synchronisé : sinon ils
# appartiendraient à root et bloqueraient le rsync suivant (piège de l'étape 9).
- name: compiler le binaire
ansible.builtin.command:
cmd: /usr/local/bin/go build -o /usr/local/sbin/correcteur .
args:
chdir: "{{ correcteur_dossier }}"
environment:
HOME: /root
GOFLAGS: -mod=readonly
changed_when: true
notify: redémarrer correcteur
- name: lire l'id du projet OpenStack des labs
ansible.builtin.shell:
cmd: >-
OS_CLIENT_CONFIG_FILE=/etc/kolla/clouds-paillasse.yaml OS_CLOUD=paillasse-service
/opt/kolla-venv/bin/openstack token issue -f value -c project_id
register: correcteur_projet
changed_when: false
- name: lire l'uid de www-data (seul client autorisé)
ansible.builtin.getent:
database: passwd
key: www-data
- name: déployer le fichier d'environnement du service
ansible.builtin.copy:
dest: /etc/correcteur.env
owner: root
group: root
mode: "0644"
content: |
# Géré par Ansible (rôle correcteur). Aucun secret ici.
CORRECTEUR_SOCKET={{ correcteur_socket }}
CORRECTEUR_LABS={{ correcteur_dossier_labs }}
CORRECTEUR_PROJET={{ correcteur_projet.stdout | trim }}
CORRECTEUR_UID_CLIENT={{ ansible_facts.getent_passwd['www-data'][1] }}
notify: redémarrer correcteur
- name: déployer le service systemd
ansible.builtin.template:
src: correcteur.service.j2
dest: /etc/systemd/system/correcteur.service
mode: "0644"
notify:
- recharger systemd
- redémarrer correcteur
- name: appliquer les changements
ansible.builtin.meta: flush_handlers
- name: vérifier que le service tourne
ansible.builtin.systemd:
name: correcteur
enabled: true
state: started