diff --git a/deployable-website/defaults/main.yml b/deployable-website/defaults/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..c23af32ed334066e969ff39750192610cb949aae --- /dev/null +++ b/deployable-website/defaults/main.yml @@ -0,0 +1,6 @@ +--- + +deployable_websites: [] +# - name: "name" +# pubkey: "ssh-…" +# subdirs: [] diff --git a/deployable-website/tasks/main.yml b/deployable-website/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..f734f684f841d68fb126cbedb71f27f785085ddb --- /dev/null +++ b/deployable-website/tasks/main.yml @@ -0,0 +1,7 @@ +--- + +- include_tasks: website.yml + with_items: "{{deployable_websites}}" + loop_control: + loop_var: website + label: "{{website.name}}" diff --git a/deployable-website/tasks/website.yml b/deployable-website/tasks/website.yml new file mode 100644 index 0000000000000000000000000000000000000000..68f89384dad6050b29849ec67257babdf8d19faf --- /dev/null +++ b/deployable-website/tasks/website.yml @@ -0,0 +1,59 @@ +--- + +- name: create a group + group: + name: "{{website.name}}" + system: true + state: present + +- name: create a user + user: + name: "{{website.name}}" + group: "{{website.name}}" + system: true + home: "/var/www/{{website.name}}" + shell: /bin/bash + createhome: false + state: present + +- name: create a home directory + file: + path: "/var/www/{{website.name}}" + state: "directory" + owner: "{{website.name}}" + group: "{{website.name}}" + mode: "0755" + +- name: create an ssh directory + file: + path: "/var/www/{{website.name}}/.ssh" + state: "directory" + owner: "{{website.name}}" + group: "{{website.name}}" + mode: "0755" + +- name: create a deploy directory + file: + path: "/var/www/{{website.name}}/deploy" + state: "directory" + owner: "{{website.name}}" + group: "{{website.name}}" + mode: "0755" + +- name: authorize the deploy key + template: + src: "authorized_keys" + dest: "/var/www/{{website.name}}/.ssh/authorized_keys" + owner: "{{website.name}}" + group: "{{website.name}}" + mode: "0644" + +- name: create deploy subdirectories + file: + path: "/var/www/{{website.name}}/deploy/{{item}}" + state: "directory" + owner: "{{website.name}}" + group: "{{website.name}}" + mode: "0755" + with_items: "{{website.subdirs|default([])}}" + diff --git a/deployable-website/templates/authorized_keys b/deployable-website/templates/authorized_keys new file mode 100644 index 0000000000000000000000000000000000000000..090be19b98ff9202d05e19e9e5edbcf6ede5cd3d --- /dev/null +++ b/deployable-website/templates/authorized_keys @@ -0,0 +1 @@ +{{website.pubkey}}