diff options
author | Christian Pointner <equinox@spreadspace.org> | 2022-07-07 00:15:52 +0200 |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2022-07-07 00:15:52 +0200 |
commit | c80d106fc5eb1ae83f4a956524d8d6e6956b94a7 (patch) | |
tree | 30461174196fbd1950131f8c0c369a51b835aaff | |
parent | ele-media: nextcloud base install (diff) |
ele-media run nextcloud installer
-rw-r--r-- | dan/host_vars/ele-media.yml | 30 | ||||
-rw-r--r-- | inventory/host_vars/ele-media.yml | 4 | ||||
-rw-r--r-- | roles/elevate/media/tasks/nextcloud-app.yml | 27 | ||||
-rw-r--r-- | roles/elevate/media/tasks/nextcloud-config.yml | 1 | ||||
-rw-r--r-- | roles/elevate/media/templates/nextcloud-pod-spec-with-mariadb.yml.j2 | 17 |
5 files changed, 48 insertions, 31 deletions
diff --git a/dan/host_vars/ele-media.yml b/dan/host_vars/ele-media.yml index 1d435797..aeac86fa 100644 --- a/dan/host_vars/ele-media.yml +++ b/dan/host_vars/ele-media.yml @@ -1,14 +1,18 @@ $ANSIBLE_VAULT;1.2;AES256;dan -37356637666439633638343164393863646436623764643931376365396130373638393466373030 -3832636539373737363639663962323436366530616364370a346337646339313464373566613836 -63323965393739353064336564666132646538323833636332396338613735613561346663386363 -6437343463623133650a616534313964343662303161656663393735656338656634313136363734 -61316136663733366331343439303235303639363761653539643333363162306334613731663165 -36376430343131353934333663346364383139323965653238623761636532326439626533633233 -37666636326430636363383935383065623861366132343764316165666133653733313639353833 -61323633656339643033623733383438336137376631363262623562326430313930386630613134 -38326338633138623736646635646337623531386637636336643764323930633963663336306330 -61626138313136663965323661656136393535646161613932363535333931663566336362383630 -36616336626630613965626638386662613765616234356533653031666133323234396665646463 -32306263633631353264626462366238393236313631663766616362643266623739613336643066 -37633132346330353235613634346561333863313465393936623832666630393538 +36343363323363636564616363643262656666363435303866313833323437373364313837393532 +3931363533343038343638353332316164666332646265350a396235313932346365666132616566 +63663335376334626263366334376236326436663565626236643166356336613332613332323532 +3038393037653863380a633462323563303937316234383565326233356330333662326634336630 +66653130616433643837393639656264643037656236353039653761343136313135316566663362 +36336233393562646361623439316435363263376261373835306136393435343634396233383437 +37396636333865633865313561303736396365373061316332386536353061363366313637656534 +34633435383039363232313131316561313432303830383231323536643536316265303065653537 +34356366366263393064396438643531306233306466303833656139323836313461373962663333 +64323036626330326131626565323966386530623439356238663665313830626532336562303933 +61333231313166306362623463633064366237363133323264616166303365663963303132343837 +35333734653433633036393238343333373961326536333866626432343534366233643438666430 +62333131353364326536636466626165383961306665353537346335316631356539346262303039 +61323636303039353239626132616632643834613064373533373730663962663764613037303862 +62346531643133346130343630353933383364666531336162386162383565383063303633616361 +63633937636461343336346234656461393336636363386463303764383030316663643236313334 +3833 diff --git a/inventory/host_vars/ele-media.yml b/inventory/host_vars/ele-media.yml index b0626d2b..f7da785f 100644 --- a/inventory/host_vars/ele-media.yml +++ b/inventory/host_vars/ele-media.yml @@ -106,12 +106,14 @@ elevate_media_nextcloud_storage: elevate_media_nextcloud_instance_name: media.elevate.at elevate_media_nextcloud_instance: - new: true version: 24.0.2 port: 8100 hostnames: - media.elevate.at - media.elev8.at + admin: + username: admin + password: "{{ vault_nextcloud_admin_passwords['media.elevate.at'] }}" database: type: mariadb version: 10.8.3 diff --git a/roles/elevate/media/tasks/nextcloud-app.yml b/roles/elevate/media/tasks/nextcloud-app.yml index fd864893..d2ea183a 100644 --- a/roles/elevate/media/tasks/nextcloud-app.yml +++ b/roles/elevate/media/tasks/nextcloud-app.yml @@ -126,3 +126,30 @@ src: "{{ item }}.j2" dest: "/usr/local/bin/{{ item }}" mode: 0755 + +### TODO: proper way to wait for app and database pods to become ready!!! +- name: fetch status of nextcloud instance + command: "nextcloud-occ '{{ elevate_media_nextcloud_instance_name }}' status -n --no-warnings --output json" + changed_when: false + register: nextcloud_status + until: "nextcloud_status is not failed" + retries: 10 + delay: 5 + +- name: parse status of nextcloud instance + set_fact: + nextcloud_status: "{{ nextcloud_status.stdout | from_json }}" + + +### TODO: hardcoded database type (mariadb/mysql)... +- name: run nextcloud installer + when: not nextcloud_status.installed + command: "nextcloud-occ '{{ elevate_media_nextcloud_instance_name }}' maintenance:install -n '--database=mysql' '--database-name=nextcloud' '--database-host=127.0.0.1' '--database-user=nextcloud' '--database-pass={{ elevate_media_nextcloud_instance.database.password }}' '--admin-user={{ elevate_media_nextcloud_instance.admin.username }}' '--admin-pass={{ elevate_media_nextcloud_instance.admin.password }}'" + register: nextcloud_installer_output + +### TODO: call these commands +## nextcloud-occ media.elevate.at config:system:set trusted_domains 0 --value='media.elevate.at' +## nextcloud-occ media.elevate.at config:system:set trusted_domains 1 --value='media.elev8.at' +## nextcloud-occ media.elevate.at config:system:set overwriteprotocol --value='https' +## nextcloud-occ media.elevate.at config:system:set overwrite.cli.url --value='https://media.elevate.at' +## nextcloud-occ media.elevate.at config:system:set default_phone_region --value='at' diff --git a/roles/elevate/media/tasks/nextcloud-config.yml b/roles/elevate/media/tasks/nextcloud-config.yml index 8f648d9b..b3795090 100644 --- a/roles/elevate/media/tasks/nextcloud-config.yml +++ b/roles/elevate/media/tasks/nextcloud-config.yml @@ -1,6 +1,7 @@ --- ### TODO: replace calls to occ with nextcloud-occ script installed by role apps/nextcloud + ## TODO: this is idempotent but flagging change would be nice - name: enable files_external app command: docker exec -u www-data nextcloud.service /var/www/html/occ app:enable files_external diff --git a/roles/elevate/media/templates/nextcloud-pod-spec-with-mariadb.yml.j2 b/roles/elevate/media/templates/nextcloud-pod-spec-with-mariadb.yml.j2 index b67066fc..ea9f90ad 100644 --- a/roles/elevate/media/templates/nextcloud-pod-spec-with-mariadb.yml.j2 +++ b/roles/elevate/media/templates/nextcloud-pod-spec-with-mariadb.yml.j2 @@ -9,21 +9,6 @@ containers: resources: limits: memory: "4Gi" -{% if 'new' in elevate_media_nextcloud_instance and elevate_media_nextcloud_instance.new %} - env: - - name: NEXTCLOUD_TRUSTED_DOMAINS - value: "{{ elevate_media_nextcloud_instance.hostnames | join(' ') }}" - - name: OVERWRITEPROTOCOL - value: "https" - - name: MYSQL_HOST - value: 127.0.0.1 - - name: MYSQL_DATABASE - value: nextcloud - - name: MYSQL_USER - value: nextcloud - - name: MYSQL_PASSWORD - value: "{{ elevate_media_nextcloud_instance.database.password }}" -{% endif %} volumeMounts: - name: nextcloud mountPath: /var/www/html @@ -50,7 +35,6 @@ containers: resources: limits: memory: "2Gi" -{% if 'new' in elevate_media_nextcloud_instance and elevate_media_nextcloud_instance.new %} env: - name: MYSQL_RANDOM_ROOT_PASSWORD value: "true" @@ -60,7 +44,6 @@ containers: value: nextcloud - name: MYSQL_PASSWORD value: "{{ elevate_media_nextcloud_instance.database.password }}" -{% endif %} volumeMounts: - name: database mountPath: /var/lib/mysql |