Merge pull request #1338 from GoMatrixHosting/gomatrixhosting-testing
Gomatrixhosting v0.6.3 - rebased properly :)
This commit is contained in:
commit
139205f3b3
66
roles/matrix-awx/surveys/bridge_discord_appservice.json.j2
Normal file
66
roles/matrix-awx/surveys/bridge_discord_appservice.json.j2
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
{
|
||||||
|
"name": "Bridge Discord Appservice",
|
||||||
|
"description": "Enables a private bridge you can use to connect Matrix rooms to Discord.",
|
||||||
|
"spec": [
|
||||||
|
{
|
||||||
|
"question_name": "Enable Discord AppService Bridge",
|
||||||
|
"question_description": "Enables a private bridge you can use to connect Matrix rooms to Discord.",
|
||||||
|
"required": true,
|
||||||
|
"min": null,
|
||||||
|
"max": null,
|
||||||
|
"default": "{{ matrix_appservice_discord_enabled | string | lower }}",
|
||||||
|
"choices": "true\nfalse",
|
||||||
|
"new_question": true,
|
||||||
|
"variable": "matrix_appservice_discord_enabled",
|
||||||
|
"type": "multiplechoice"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_name": "Discord Client ID",
|
||||||
|
"question_description": "The OAuth2 'CLIENT ID' which can be found in the 'OAuth2' tab of your new discord application: https://discord.com/developers/applications",
|
||||||
|
"required": true,
|
||||||
|
"min": 0,
|
||||||
|
"max": 128,
|
||||||
|
"default": "{{ matrix_appservice_discord_client_id | trim }}",
|
||||||
|
"choices": "",
|
||||||
|
"new_question": true,
|
||||||
|
"variable": "matrix_appservice_discord_client_id",
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_name": "Discord Bot Token",
|
||||||
|
"question_description": "The Bot 'TOKEN' which can be found in the 'Bot' tab of your new discord application: https://discord.com/developers/applications",
|
||||||
|
"required": true,
|
||||||
|
"min": 0,
|
||||||
|
"max": 256,
|
||||||
|
"default": "{{ matrix_appservice_discord_bot_token | trim }}",
|
||||||
|
"choices": "",
|
||||||
|
"new_question": true,
|
||||||
|
"variable": "matrix_appservice_discord_bot_token",
|
||||||
|
"type": "password"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_name": "Auto-Admin Matrix User",
|
||||||
|
"question_description": "The username you would like to be automatically joined and promoted to administrator (PL100) in bridged rooms. Exclude the '@' and server name postfix. So to create @stevo:example.org just enter 'stevo'.",
|
||||||
|
"required": false,
|
||||||
|
"min": 0,
|
||||||
|
"max": 1024,
|
||||||
|
"default": "",
|
||||||
|
"choices": "",
|
||||||
|
"new_question": true,
|
||||||
|
"variable": "awx_appservice_discord_admin_user",
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_name": "Auto-Admin Rooms",
|
||||||
|
"question_description": "A list of rooms you want the user to be automatically joined and promoted to administrator (PL100) in. These should be the internal IDs (for example '!axfBUsKhfAjSMBdjKX:example.org') separated by newlines.",
|
||||||
|
"required": false,
|
||||||
|
"min": 0,
|
||||||
|
"max": 4096,
|
||||||
|
"default": "",
|
||||||
|
"choices": "",
|
||||||
|
"new_question": true,
|
||||||
|
"variable": "awx_appservice_discord_admin_rooms",
|
||||||
|
"type": "textarea"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -66,10 +66,10 @@
|
|||||||
"required": false,
|
"required": false,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 256,
|
"max": 256,
|
||||||
"default": "{{ awx_corporal_http_api_auth_token }}",
|
"default": "{{ matrix_corporal_http_api_auth_token }}",
|
||||||
"choices": "",
|
"choices": "",
|
||||||
"new_question": true,
|
"new_question": true,
|
||||||
"variable": "awx_corporal_http_api_auth_token",
|
"variable": "matrix_corporal_http_api_auth_token",
|
||||||
"type": "password"
|
"type": "password"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -81,7 +81,7 @@
|
|||||||
"default": "{{ awx_corporal_raise_ratelimits }}",
|
"default": "{{ awx_corporal_raise_ratelimits }}",
|
||||||
"choices": "Normal\nRaised",
|
"choices": "Normal\nRaised",
|
||||||
"new_question": true,
|
"new_question": true,
|
||||||
"variable": "matrix_corporal_raise_ratelimits",
|
"variable": "awx_corporal_raise_ratelimits",
|
||||||
"type": "multiplechoice"
|
"type": "multiplechoice"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
62
roles/matrix-awx/tasks/bridge_discord_appservice.yml
Normal file
62
roles/matrix-awx/tasks/bridge_discord_appservice.yml
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
|
||||||
|
- name: Record Bridge Discord AppService variables locally on AWX
|
||||||
|
delegate_to: 127.0.0.1
|
||||||
|
lineinfile:
|
||||||
|
path: '{{ awx_cached_matrix_vars }}'
|
||||||
|
regexp: "^#? *{{ item.key | regex_escape() }}:"
|
||||||
|
line: "{{ item.key }}: {{ item.value }}"
|
||||||
|
insertafter: '# Bridge Discord AppService Start'
|
||||||
|
with_dict:
|
||||||
|
'matrix_appservice_discord_enabled': '{{ matrix_appservice_discord_enabled }}'
|
||||||
|
'matrix_appservice_discord_client_id': '{{ matrix_appservice_discord_client_id }}'
|
||||||
|
'matrix_appservice_discord_bot_token': '{{ matrix_appservice_discord_bot_token }}'
|
||||||
|
|
||||||
|
- name: Collect discord bot invite link
|
||||||
|
shell:
|
||||||
|
cat /matrix/appservice-discord/config/invite_link
|
||||||
|
register: awx_discord_appservice_link
|
||||||
|
|
||||||
|
- name: If the raw inputs is not empty start constructing parsed awx_appservice_discord_admin_rooms list
|
||||||
|
set_fact:
|
||||||
|
awx_appservice_discord_admin_rooms_array: |-
|
||||||
|
{{ awx_appservice_discord_admin_rooms.splitlines() | to_json }}
|
||||||
|
when: awx_appservice_discord_admin_rooms | trim | length > 0
|
||||||
|
|
||||||
|
- name: Promote user to administer (PL100) of each room
|
||||||
|
command: |
|
||||||
|
docker exec -i matrix-appservice-discord /bin/sh -c 'cp /cfg/registration.yaml /tmp/discord-registration.yaml && cd /tmp && node /build/tools/adminme.js -c /cfg/config.yaml -m "{{ item.1 }}" -u "@{{ awx_appservice_discord_admin_user }}:{{ matrix_domain }}" -p 100'
|
||||||
|
with_indexed_items:
|
||||||
|
- "{{ awx_appservice_discord_admin_rooms_array }}"
|
||||||
|
when: ( awx_appservice_discord_admin_rooms | trim | length > 0 ) and ( awx_appservice_discord_admin_user is defined )
|
||||||
|
|
||||||
|
- name: Save new 'Bridge Discord Appservice' survey.json to the AWX tower, template
|
||||||
|
delegate_to: 127.0.0.1
|
||||||
|
template:
|
||||||
|
src: 'roles/matrix-awx/surveys/bridge_discord_appservice.json.j2'
|
||||||
|
dest: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}//bridge_discord_appservice.json'
|
||||||
|
|
||||||
|
- name: Copy new 'Bridge Discord Appservice' survey.json to target machine
|
||||||
|
copy:
|
||||||
|
src: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/bridge_discord_appservice.json'
|
||||||
|
dest: '/matrix/awx/bridge_discord_appservice.json'
|
||||||
|
mode: '0660'
|
||||||
|
|
||||||
|
- name: Recreate 'Bridge Discord Appservice' job template
|
||||||
|
delegate_to: 127.0.0.1
|
||||||
|
awx.awx.tower_job_template:
|
||||||
|
name: "{{ matrix_domain }} - 3 - Bridge Discord AppService"
|
||||||
|
description: "Enables a private bridge you can use to connect Matrix rooms to Discord."
|
||||||
|
extra_vars: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/extra_vars.json') }}"
|
||||||
|
job_type: run
|
||||||
|
job_tags: "start,setup-all,bridge-discord-appservice"
|
||||||
|
inventory: "{{ member_id }}"
|
||||||
|
project: "{{ member_id }} - Matrix Docker Ansible Deploy"
|
||||||
|
playbook: setup.yml
|
||||||
|
credential: "{{ member_id }} - AWX SSH Key"
|
||||||
|
survey_enabled: true
|
||||||
|
survey_spec: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/bridge_discord_appservice.json') }}"
|
||||||
|
state: present
|
||||||
|
verbosity: 1
|
||||||
|
tower_host: "https://{{ awx_host }}"
|
||||||
|
tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
|
||||||
|
validate_certs: yes
|
@ -197,6 +197,15 @@
|
|||||||
tags:
|
tags:
|
||||||
- setup-synapse-admin
|
- setup-synapse-admin
|
||||||
|
|
||||||
|
# Additional playbook to set the variable file during Discord Appservice Bridge configuration
|
||||||
|
- include_tasks:
|
||||||
|
file: "bridge_discord_appservice.yml"
|
||||||
|
apply:
|
||||||
|
tags: bridge-discord-appservice
|
||||||
|
when: run_setup|bool and matrix_awx_enabled|bool
|
||||||
|
tags:
|
||||||
|
- bridge-discord-appservice
|
||||||
|
|
||||||
# Delete AWX session token
|
# Delete AWX session token
|
||||||
- include_tasks:
|
- include_tasks:
|
||||||
file: "delete_session_token.yml"
|
file: "delete_session_token.yml"
|
||||||
|
@ -84,7 +84,7 @@
|
|||||||
when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
|
when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
|
||||||
|
|
||||||
- name: Purge all rooms with no local users
|
- name: Purge all rooms with no local users
|
||||||
include_tasks: awx_purge_database_no_local.yml
|
include_tasks: purge_database_no_local.yml
|
||||||
loop: "{{ awx_room_list_no_local_users.splitlines() | flatten(levels=1) }}"
|
loop: "{{ awx_room_list_no_local_users.splitlines() | flatten(levels=1) }}"
|
||||||
when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
|
when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
|
||||||
|
|
||||||
@ -116,7 +116,7 @@
|
|||||||
no_log: True
|
no_log: True
|
||||||
|
|
||||||
- name: Purge all rooms with more then N users
|
- name: Purge all rooms with more then N users
|
||||||
include_tasks: awx_purge_database_users.yml
|
include_tasks: purge_database_users.yml
|
||||||
loop: "{{ awx_room_list_joined_members.splitlines() | flatten(levels=1) }}"
|
loop: "{{ awx_room_list_joined_members.splitlines() | flatten(levels=1) }}"
|
||||||
when: awx_purge_mode.find("Number of users [slower]") != -1
|
when: awx_purge_mode.find("Number of users [slower]") != -1
|
||||||
|
|
||||||
@ -141,7 +141,7 @@
|
|||||||
no_log: True
|
no_log: True
|
||||||
|
|
||||||
- name: Purge all rooms with more then N events
|
- name: Purge all rooms with more then N events
|
||||||
include_tasks: awx_purge_database_events.yml
|
include_tasks: purge_database_events.yml
|
||||||
loop: "{{ awx_room_list_state_events.splitlines() | flatten(levels=1) }}"
|
loop: "{{ awx_room_list_state_events.splitlines() | flatten(levels=1) }}"
|
||||||
when: awx_purge_mode.find("Number of events [slower]") != -1
|
when: awx_purge_mode.find("Number of events [slower]") != -1
|
||||||
|
|
||||||
|
@ -84,14 +84,16 @@
|
|||||||
line: "{{ item.key }}: {{ item.value }}"
|
line: "{{ item.key }}: {{ item.value }}"
|
||||||
insertafter: '# Corporal Settings Start'
|
insertafter: '# Corporal Settings Start'
|
||||||
with_dict:
|
with_dict:
|
||||||
'awx_corporal_http_api_auth_token': '{{ awx_corporal_http_api_auth_token }}'
|
'matrix_corporal_http_api_auth_token': '{{ matrix_corporal_http_api_auth_token }}'
|
||||||
when: awx_corporal_http_api_auth_token|length > 0
|
when: ( matrix_corporal_http_api_auth_token|length > 0 ) and ( awx_corporal_policy_provider_mode != "Simple Static File" )
|
||||||
|
|
||||||
- name: Record 'Simple Static File' configuration variables in matrix_vars.yml
|
- name: Record 'Simple Static File' configuration variables in matrix_vars.yml
|
||||||
delegate_to: 127.0.0.1
|
delegate_to: 127.0.0.1
|
||||||
blockinfile:
|
blockinfile:
|
||||||
path: '{{ awx_cached_matrix_vars }}'
|
path: '{{ awx_cached_matrix_vars }}'
|
||||||
insertafter: "# Corporal Policy Provider Settings Start"
|
insertbefore: "# Corporal Policy Provider Settings End"
|
||||||
|
marker_begin: "Corporal"
|
||||||
|
marker_end: "Corporal"
|
||||||
block: |
|
block: |
|
||||||
matrix_corporal_policy_provider_config: |
|
matrix_corporal_policy_provider_config: |
|
||||||
{
|
{
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
set_fact:
|
set_fact:
|
||||||
awx_synapse_auto_join_rooms_array: |-
|
awx_synapse_auto_join_rooms_array: |-
|
||||||
{{ awx_synapse_auto_join_rooms.splitlines() | to_json }}
|
{{ awx_synapse_auto_join_rooms.splitlines() | to_json }}
|
||||||
when: awx_synapse_auto_join_rooms|length > 0
|
when: awx_synapse_auto_join_rooms | length > 0
|
||||||
|
|
||||||
- name: Record Synapse variable 'matrix_synapse_auto_join_rooms' locally on AWX, if it's not blank
|
- name: Record Synapse variable 'matrix_synapse_auto_join_rooms' locally on AWX, if it's not blank
|
||||||
delegate_to: 127.0.0.1
|
delegate_to: 127.0.0.1
|
||||||
@ -49,7 +49,7 @@
|
|||||||
insertafter: '# Synapse Settings Start'
|
insertafter: '# Synapse Settings Start'
|
||||||
with_dict:
|
with_dict:
|
||||||
"matrix_synapse_auto_join_rooms": "{{ awx_synapse_auto_join_rooms_array }}"
|
"matrix_synapse_auto_join_rooms": "{{ awx_synapse_auto_join_rooms_array }}"
|
||||||
when: awx_synapse_auto_join_rooms|length > 0
|
when: awx_synapse_auto_join_rooms | length > 0
|
||||||
|
|
||||||
- name: Record Synapse Shared Secret if it's defined
|
- name: Record Synapse Shared Secret if it's defined
|
||||||
delegate_to: 127.0.0.1
|
delegate_to: 127.0.0.1
|
||||||
|
@ -62,3 +62,8 @@
|
|||||||
group: matrix
|
group: matrix
|
||||||
mode: '0770'
|
mode: '0770'
|
||||||
when: awx_customise_base_domain_website is defined
|
when: awx_customise_base_domain_website is defined
|
||||||
|
|
||||||
|
- name: Print Discord AppService Bot Link for user
|
||||||
|
debug:
|
||||||
|
msg: "{{ awx_discord_appservice_link.stdout }}"
|
||||||
|
when: awx_discord_appservice_link is defined
|
||||||
|
Loading…
Reference in New Issue
Block a user