- name: install packages become: true package: name: '{{ item }}' state: present loop: '{{ packages }}' - name: clone project git: repo: '{{ app_url }}' dest: '{{ app_dir }}' version: '{{ app_branch }}' update: yes - name: include poetry tasks include_role: name: common tasks_from: 'poetry.yml' vars: poetry_user: '{{ ansible_user_id }}' poetry_dir: '{{ ansible_env.HOME }}/.poetry' - name: run poetry tasks block: - name: retrieve user $PATH shell: 'echo $PATH' register: path_stats - name: set poetry user variables set_fact: poetry_user_path: '{{ path_stats.stdout }}' - name: set default venv python version command: 'poetry env use python3.7' args: chdir: '{{ app_dir }}' environment: PATH: '/home/{{ app_user }}/.local/bin:{{ poetry_user_path }}' # TODO allow ansible to run multiple flags (extras flag doesn't seem to be working) - name: install project dependencies command: 'poetry install --no-dev --extras sentry' args: chdir: '{{ app_dir }}' environment: PATH: '/home/{{ app_user }}/.local/bin:{{ poetry_user_path }}' - name: create ssh directory file: path: '{{ private_key_dir }}' state: 'directory' - name: copy private key copy: src: 'files/transip-client.key' dest: '{{ private_key_dir }}/{{ private_key_name }}' mode: 0600 - name: copy environment file template: src: 'templates/env.j2' dest: '{{ app_dir }}/.env' mode: 0600 - name: create systemd user directory file: path: '{{ systemd_dir }}' state: 'directory' - name: copy systemd templates template: src: '{{ item.src }}' dest: '{{ item.dest }}' mode: '{{ item.mode }}' loop: - { src: 'templates/timer.j2', dest: '{{ systemd_dir }}/transip-client.timer', mode: '0644', } - { src: 'templates/service.j2', dest: '{{ systemd_dir }}/transip-client.service', mode: '0644', } notify: enable transip-client timer