diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..c9fc1b2b3bb5955d3b0276cf0aa7e574d14d63cb --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,2 @@ +sftp_user: [] +sftp_devpath: false diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..4eb972f570107ee6013b1b0bf7c276f91aa5479b --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,4 @@ +--- + +dependencies: + - { role: common } diff --git a/tasks/main.yml b/tasks/main.yml index 7fc47c0e5e0250f8f67a111c026f18af980beea9..eaed88f7843cf76d22e5a59bc71dd94ca493a3fa 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,22 +1,40 @@ - - name: "Ensure Group" - group: name=sftp state=present - - name: "Create User" - user: name={{username}} group=sftp home=/home/{{username}} shell=/bin/false - - name: "Install Certificate" - authorized_key: user={{username}} key="{{lookup('file', certificate)}}" - - name: "Ensure SFTP Directory" - file: dest=/var/sftp owner=root group=root state=directory mode=755 - - name: "Create Data Directory" - file: dest=/var/sftp/data owner=root group=sftp state=directory mode=775 - - name: "Create Mount Point" - mount: fstype=none opts=bind name=/var/sftp/data/dev src={{devpath}} state=mounted - - name: "Set ownership" - command: chown -R root:sftp {{devpath}} - - name: "Set permissions" - command: chmod -R g+w {{devpath}} - - name: "Collect SVN Directories" - command: find {{devpath}} -type d -name .svn - register: svnpaths - - name: "Set ownership on SVN Directories" - command: chown -R root:root {{item}} - with_items: svnpaths.stdout_lines +--- +# file: roles/sftp/tasks/main.yml + +- name: "SFTP | Ensure Group" + group: + name=sftp + state=present + +- name: "SFTP | Ensure SFTP Directory" + file: + dest=/var/sftp + owner=root + group=root + state=directory + mode=755 + +- name: "SFTP | Create User" + user: + name={{ item.username }} + group=sftp + home=/home/{{ item.username }} + shell=/bin/false + with_items: sftp_user + +- name: "SFTP | Install Key" + authorized_key: + user={{ item.username }} + key={{ item.key }} + with_items: sftp_user + +- name: "SFTP | Create Data Directory" + file: + dest=/var/sftp/data + owner=root + group=sftp + state=directory + mode=775 + +- include: mount.yml + when: sftp_devpath diff --git a/tasks/mount.yml b/tasks/mount.yml new file mode 100644 index 0000000000000000000000000000000000000000..7a01c31bbdfc8c300988c4ed895dbc40d74a8881 --- /dev/null +++ b/tasks/mount.yml @@ -0,0 +1,24 @@ +--- +# file: roles/sftp/tasks/mount.yml + +- name: "SFTP | Create Mount Point" + mount: + fstype=none + opts=bind + name=/var/sftp/data/dev + src={{ sftp_devpath }} + state=mounted + +- name: "SFTP | Set ownership" + command: chown -R root:sftp {{ sftp_devpath }} + +- name: "SFTP | Set permissions" + command: chmod -R g+w {{ sftp_devpath }} + +- name: "SFTP | Collect SVN Directories" + command: find {{ sftp_devpath }} -type d -name .svn + register: svnpaths + +- name: "SFTP | Set ownership on SVN Directories" + command: chown -R root:root {{ item }} + with_items: svnpaths.stdout_lines