diff --git a/README.md b/README.md index 8e8455d3..9ef4fe59 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,9 @@ Il contient la définition de chaque machine et le regroupement. Quand on regroupe avec un `:children` en réalité on groupe des groupes. -Chaque machine est annoncée avec son hostname. Il faut pouvoir SSH sur cette machine -avec ce hostname, car c'est ce qu'Ansible fera. +Une machine est déclarée via un nom qui sera résolu par SSH. Celà peut +classiquement être son hostname. Ansible initiera une connection SSH vers +ce nom en honorant sa configuration. **Playbook** : c'est une politique de déploiement. Il contient les associations des rôles avec les machines. @@ -22,8 +23,9 @@ L'idée au Crans est de regrouper par thème. Exemple, le playbook `monitoring.y va contenir toutes les définitions machines-rôles qui touchent au monitoring. Cela permet de déployer manuellement tout le monitoring sans toucher au reste. -**Rôle** : un playbook donne des rôles à des machines. Ces rôles sont tous dans -le dossier `roles/`. Un rôle installe un service précis sur un serveur. +**Rôle** : un playbook donne des rôles à des machines. Les rôles sont rassemblés +dans le dossier `roles`. Chaque rôle installe un service et sa configuration si +elle est nécessaire. Il est préférable d'être atomique sur les rôles plutôt d'en coder un énorme qui sera difficilement maintenable. @@ -31,8 +33,9 @@ qui sera difficilement maintenable. *Exemples de rôle* : activer les backports pour ma version de Debian, installer NodeJS, déployer un serveur prometheus, déployer une node prometheus… -**Tâche** : un rôle est composé de tâches. Une tâche effectue une et une seule -action. Elle est associée à un module Ansible. +**Tâche** : un rôle est une suite de tâche qui sont généralement des actions unitaires +mais parfois qui peuvent être plusieurs actions similaires (effectuées via une `loop`). +Chaque action est définie par un module Ansible. *Exemples de tâche* : installer un paquet avec le module `apt`, ajouter une ligne dans un fichier avec le module `lineinfile`, copier une template avec le module `template`… 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 80586c40..ed0e4fef 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 @@ -25,11 +25,7 @@ if [ ! -d "${UHOME}/OwnCloud" ] || ! ( /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 $USERID:${UGROUP} ${UHOME}/OwnCloud + if [ ! -d "${UHOME}/OwnCloud" ] && [ ! -f "${UHOME}/OwnCloud" ]; then mkdir -m 700 ${UHOME}/OwnCloud && chown $USERID:${UGROUP} ${UHOME}/OwnCloud; fi if [ ! -d "${UHOME}/OwnCloud" ] || ! ( /usr/bin/find ${UHOME}/OwnCloud/ -maxdepth 0 -user $USERID -group ${UGROUP} |