From 9dc5f3fefb19cc3a22cebc8eadb6f02d84802f55 Mon Sep 17 00:00:00 2001 From: Maxime Bombar <bombar@crans.org> Date: Tue, 29 Dec 2020 02:05:18 +0100 Subject: [PATCH] Owncloud is on ! --- host_vars/owncloud.adm.crans.org.yml | 6 ++++++ hosts | 1 + plays/owncloud.yml | 5 ++++- roles/owncloud-autofs/tasks/main.yml | 4 ++-- .../auto.master.d/home-owncloud.sh.j2 | 19 +++++++++++-------- roles/owncloud/tasks/main.yml | 10 ++++++++++ 6 files changed, 34 insertions(+), 11 deletions(-) create mode 100644 host_vars/owncloud.adm.crans.org.yml diff --git a/host_vars/owncloud.adm.crans.org.yml b/host_vars/owncloud.adm.crans.org.yml new file mode 100644 index 00000000..85395a8d --- /dev/null +++ b/host_vars/owncloud.adm.crans.org.yml @@ -0,0 +1,6 @@ +--- +loc_ldap: + base_dn: "cn=admin,dc=crans,dc=org" + password: "{{ vault_ldap_master_password }}" + uri: "ldap://172.16.10.157" + diff --git a/hosts b/hosts index ea5b0fb1..b6c5952f 100644 --- a/hosts +++ b/hosts @@ -115,6 +115,7 @@ kenobi.adm.crans.org roundcube.adm.crans.org horde.adm.crans.org bigbluebutton.adm.crans.org +owncloud.adm.crans.org [ovh_physical] sputnik.adm.crans.org diff --git a/plays/owncloud.yml b/plays/owncloud.yml index 3280165f..1be65a36 100755 --- a/plays/owncloud.yml +++ b/plays/owncloud.yml @@ -1,7 +1,10 @@ #!/usr/bin/env ansible-playbook --- # Deploy OwnCloud -- hosts: owncloud-srv.adm.crans.org +- hosts: owncloud.adm.crans.org + vars: + ldap: '{{ glob_ldap | default({}) | combine(loc_ldap | default({})) }}' + roles: - owncloud - owncloud-autofs diff --git a/roles/owncloud-autofs/tasks/main.yml b/roles/owncloud-autofs/tasks/main.yml index 83db9c3f..e8acd1aa 100644 --- a/roles/owncloud-autofs/tasks/main.yml +++ b/roles/owncloud-autofs/tasks/main.yml @@ -25,8 +25,8 @@ dest: "/etc/auto.master.d/{{ item.0 }}" mode: "{{ item.1 }}" loop: - - ["home-owncloud.autofs", "0644"] - - ["home-owncloud.sh", "0755"] + - ["home-owncloud.autofs", "0600"] + - ["home-owncloud.sh", "0700"] notify: Restart autofs service - name: Create /home-owncloud/ directory diff --git a/roles/owncloud-autofs/templates/auto.master.d/home-owncloud.sh.j2 b/roles/owncloud-autofs/templates/auto.master.d/home-owncloud.sh.j2 index 3f764cc8..80586c40 100755 --- a/roles/owncloud-autofs/templates/auto.master.d/home-owncloud.sh.j2 +++ b/roles/owncloud-autofs/templates/auto.master.d/home-owncloud.sh.j2 @@ -5,31 +5,34 @@ # ceci est un fix USER=$(echo $1 | sed "s/_[1-9]*$//") + +UHOME=/home_adh/$USER + +USERID=$(ldapsearch -LLL -b "{{ ldap.base }}" -H {{ ldap.uri }} -D "{{ ldap.base_dn }}" -w {{ ldap.password }} "uid=$USER" uidNumber | grep uidNumber | awk '{print $2}') +UGROUP=$(ldapsearch -LLL -b "{{ ldap.base }}" -H {{ ldap.uri }} -D "{{ ldap.base_dn }}" -w {{ ldap.password }} "uid=$USER" gidNumber | grep gidNumber | awk '{print $2}') + # On quitte si l'utilisateur $USER n'existe pas -if ! /usr/bin/id -- "$USER" &>/dev/null; then +if [ -z "$USERID" ]; then logger -p local0.error -t autofs "user $USER n'existe pas" exit 1 fi -UHOME=$(eval echo ~$USER) -UGROUP=$(/usr/bin/id -gn $USER) - # Rafraîchi les stats du dossier /bin/ls ${UHOME}/OwnCloud/ &>/dev/null || /bin/ls ${UHOME} &>/dev/null # Création du dossier OwnCloud s'il n'existe pas ou n'appartient pas a l'utilisateur if [ ! -d "${UHOME}/OwnCloud" ] || ! ( - /usr/bin/find ${UHOME}/OwnCloud/ -maxdepth 0 -user $USER -group ${UGROUP} | + /usr/bin/find ${UHOME}/OwnCloud/ -maxdepth 0 -user $USERID -group ${UGROUP} | /bin/grep -q ${UHOME}/OwnCloud/ ); then if [ ! -d "${UHOME}/OwnCloud" ]; then mkdir ${UHOME}/OwnCloud fi chmod 700 ${UHOME}/OwnCloud && - chown $USER:${UGROUP} ${UHOME}/OwnCloud + chown $USERID:${UGROUP} ${UHOME}/OwnCloud if [ ! -d "${UHOME}/OwnCloud" ] || ! ( - /usr/bin/find ${UHOME}/OwnCloud/ -maxdepth 0 -user $USER -group ${UGROUP} | + /usr/bin/find ${UHOME}/OwnCloud/ -maxdepth 0 -user $USERID -group ${UGROUP} | /bin/grep -q ${UHOME}/OwnCloud/ ); then logger -p local0.error -t autofs "impossible de créer le dossier ${UHOME}/OwnCloud" @@ -41,4 +44,4 @@ fi chmod 750 /home-owncloud && chown www-data:root /home-owncloud && -echo "-fstype=fuse.bindfs,map=$USER/www-data:@$UGROUP/@www-data,resolve-symlinks :${UHOME}/OwnCloud" +echo "-fstype=fuse.bindfs,map=$USERID/www-data:@$UGROUP/@www-data,resolve-symlinks :${UHOME}/OwnCloud" diff --git a/roles/owncloud/tasks/main.yml b/roles/owncloud/tasks/main.yml index 6baa9b20..72e735bb 100644 --- a/roles/owncloud/tasks/main.yml +++ b/roles/owncloud/tasks/main.yml @@ -1,4 +1,14 @@ --- + +- name: Install gpg + apt: + update_cache: true + name: + - gpg + register: apt_result + retries: 3 + until: apt_result is succeeded + # Add the key - name: Configure the apt key apt_key: -- GitLab