diff --git a/roles/pelican/tasks/main.yml b/roles/pelican/tasks/main.yml index abecc4f..3991fb7 100644 --- a/roles/pelican/tasks/main.yml +++ b/roles/pelican/tasks/main.yml @@ -1,4 +1,52 @@ --- -- include: pelican.yml - tags: pelican +- block: + - name: Install nginx and dependencies + apt: + name: [nginx, git] + + - name: Create user + user: + name: "{{ pelican_user }}" + shell: /bin/false + system: yes + home: "{{ pelican_home }}" + + - name: Clone repo + git: + repo: "{{ pelican_repo }}" + dest: "{{ pelican_home }}/repo" + register: clone_repo + + - name: pip install pelican markdown + pip: + name: [pelican, markdown] + virtualenv_command: /usr/bin/python3 -m venv + virtualenv: "{{ pelican_home }}/venv" + + - name: Ensure pelican can write in its output dir + file: + path: "{{ pelican_home }}/www/" + state: directory + owner: "{{ pelican_user }}" + mode: 0755 + + - name: Build pelican + when: clone_repo.changed + command: "{{ pelican_home }}/venv/bin/pelican -o {{ pelican_home }}/www/" + args: + chdir: "{{ pelican_home }}/repo/{{ pelican_path_in_repo }}" + become: true + become_method: su + become_user: "{{ pelican_user }}" + become_flags: "-s /bin/sh" + + - name: Configure nginx + template: + src: nginx-vhost + dest: "/etc/nginx/conf.d/{{ pelican_domain }}.conf" + owner: root + group: root + mode: 0644 + notify: reload nginx + tags: [pelican] diff --git a/roles/pelican/tasks/pelican.yml b/roles/pelican/tasks/pelican.yml deleted file mode 100644 index 5c5221b..0000000 --- a/roles/pelican/tasks/pelican.yml +++ /dev/null @@ -1,50 +0,0 @@ ---- - -- name: Install nginx and dependencies - apt: - name: [nginx, git] - -- name: Create user - user: - name: "{{ pelican_user }}" - shell: /bin/false - system: yes - home: "{{ pelican_home }}" - -- name: Clone repo - git: - repo: "{{ pelican_repo }}" - dest: "{{ pelican_home }}/repo" - register: clone_repo - -- name: pip install pelican markdown - pip: - name: [pelican, markdown] - virtualenv_command: /usr/bin/python3 -m venv - virtualenv: "{{ pelican_home }}/venv" - -- name: Ensure pelican can write in its output dir - file: - path: "{{ pelican_home }}/www/" - state: directory - owner: "{{ pelican_user }}" - mode: 0755 - -- name: Build pelican - when: clone_repo.changed - command: "{{ pelican_home }}/venv/bin/pelican -o {{ pelican_home }}/www/" - args: - chdir: "{{ pelican_home }}/repo/{{ pelican_path_in_repo }}" - become: true - become_method: su - become_user: "{{ pelican_user }}" - become_flags: "-s /bin/sh" - -- name: Configure nginx - template: - src: nginx-vhost - dest: "/etc/nginx/conf.d/{{ pelican_domain }}.conf" - owner: root - group: root - mode: 0644 - notify: reload nginx diff --git a/roles/static/tasks/main.yml b/roles/static/tasks/main.yml index ef74697..44002ac 100644 --- a/roles/static/tasks/main.yml +++ b/roles/static/tasks/main.yml @@ -1,4 +1,29 @@ --- -- include: static.yml - tags: static +- block: + - name: Install nginx and dependencies + apt: + name: [nginx, git] + + - name: Create user + user: + name: "{{ static_user }}" + shell: /bin/false + system: yes + home: "{{ static_home }}" + + - name: Clone repo + git: + repo: "{{ static_repo }}" + dest: "{{ static_home }}/www/" + register: clone_repo + + - name: Configure nginx + template: + src: nginx-vhost + dest: "/etc/nginx/conf.d/{{ static_domain }}.conf" + owner: root + group: root + mode: 0644 + notify: reload nginx + tags: [static] diff --git a/roles/static/tasks/static.yml b/roles/static/tasks/static.yml deleted file mode 100644 index 2f1d6bf..0000000 --- a/roles/static/tasks/static.yml +++ /dev/null @@ -1,27 +0,0 @@ ---- - -- name: Install nginx and dependencies - apt: - name: [nginx, git] - -- name: Create user - user: - name: "{{ static_user }}" - shell: /bin/false - system: yes - home: "{{ static_home }}" - -- name: Clone repo - git: - repo: "{{ static_repo }}" - dest: "{{ static_home }}/www/" - register: clone_repo - -- name: Configure nginx - template: - src: nginx-vhost - dest: "/etc/nginx/conf.d/{{ static_domain }}.conf" - owner: root - group: root - mode: 0644 - notify: reload nginx