stack_host_provisioning.ymlΒΆ

---
- name: πŸ“ create admin account
  shell: >-
    container exec -i -e MATRIX_ADMINISTRATOR_PASSWORD {{ MATRIX_SYNAPSE_CONTAINER_ADDRESS }}
    sh -lc 'register_new_matrix_user
    -u "{{ MATRIX_ADMINISTRATOR_USERNAME }}"
    -p "$MATRIX_ADMINISTRATOR_PASSWORD"
    -a -c "{{ MATRIX_SYNAPSE_CONFIG_PATH_CONTAINER }}"
    http://localhost:{{ MATRIX_SYNAPSE_CONTAINER_PORT }}'
  environment:
    MATRIX_ADMINISTRATOR_PASSWORD: "{{ MATRIX_ADMINISTRATOR_PASSWORD }}"
  register: matrix_create_admin
  changed_when: matrix_create_admin.rc == 0
  failed_when: >
    matrix_create_admin.rc != 0 and
    'User ID already taken' not in (matrix_create_admin.stdout + matrix_create_admin.stderr)
  no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"

- name: "πŸ”‘ Realign the admin password Synapse already stored"
  ansible.builtin.include_tasks:
    file: realign_synapse_password.yml
    apply:
      no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"
  vars:
    realign_localpart: "{{ MATRIX_ADMINISTRATOR_USERNAME }}"
    realign_password: "{{ MATRIX_ADMINISTRATOR_PASSWORD }}"
  when: not matrix_create_admin.changed

- name: πŸ“ create chatgpt bot
  shell: >-
    container exec -i -e MATRIX_BOT_PASSWORD {{ MATRIX_SYNAPSE_CONTAINER_ADDRESS }}
    sh -lc 'register_new_matrix_user
    -u chatgptbot
    -p "$MATRIX_BOT_PASSWORD"
    -a -c "{{ MATRIX_SYNAPSE_CONFIG_PATH_CONTAINER }}"
    http://localhost:{{ MATRIX_SYNAPSE_CONTAINER_PORT }}'
  environment:
    MATRIX_BOT_PASSWORD: "{{ lookup('config', application_id, 'secrets.credentials.chatgpt_bridge_user_password') }}"
  register: matrix_create_chatgptbot
  changed_when: matrix_create_chatgptbot.rc == 0
  failed_when: >
    matrix_create_chatgptbot.rc != 0 and
    'User ID already taken' not in (matrix_create_chatgptbot.stdout + matrix_create_chatgptbot.stderr)
  no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"

- name: "πŸ”‘ Realign the bridge bot password Synapse already stored"
  ansible.builtin.include_tasks:
    file: realign_synapse_password.yml
    apply:
      no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"
  vars:
    realign_localpart: chatgptbot
    realign_password: "{{ lookup('config', application_id, 'secrets.credentials.chatgpt_bridge_user_password') }}"
  when: not matrix_create_chatgptbot.changed

- name: "πŸ”‘ Give the ChatGPT bridge a token Synapse actually issued"
  ansible.builtin.include_tasks:
    file: chatgpt_bridge_token.yml
    apply:
      no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"

- name: "βž• re-add compose.yml now that the bridge token exists"
  stack_host_template:
    src: "compose.yml.j2"
    dest: "{{ [ lookup('container', application_id, 'directories.instance'),'compose.yml' ] | path_join }}"
  notify: compose-up