169 lines
4.1 KiB
YAML
169 lines
4.1 KiB
YAML
---
|
|
- name: Update repositories cache and install package
|
|
apt:
|
|
name: "{{ packages }}"
|
|
state: latest
|
|
update_cache: yes
|
|
vars:
|
|
packages:
|
|
- libpq-dev
|
|
- gettext
|
|
- git
|
|
- curl
|
|
- gcc
|
|
- make
|
|
- openssl
|
|
- libssl-dev
|
|
- pkg-config
|
|
- pwgen
|
|
|
|
- name: check if Plume folder exists
|
|
stat:
|
|
path: /var/www/plume/www/.git/config
|
|
register: plumefolder
|
|
|
|
- name: Create /var/www folder
|
|
file:
|
|
path: /var/www
|
|
state: directory
|
|
mode: 0755
|
|
|
|
|
|
- name: Add the user 'Plume'
|
|
user:
|
|
name: plume
|
|
shell: /bin/bash
|
|
home: /var/www/plume
|
|
create_home: yes
|
|
when: plumefolder.stat.exists == False
|
|
|
|
- name: install rust by rustup
|
|
shell: curl https://sh.rustup.rs -sSf | sh -s -- -y
|
|
become: yes
|
|
become_user: plume
|
|
when: plumefolder.stat.exists == False
|
|
|
|
- name: Update rustup
|
|
shell: /var/www/plume/.cargo/bin/rustup update
|
|
become: yes
|
|
become_user: plume
|
|
when: plumefolder.stat.exists == True
|
|
|
|
- name: install rust by rustup
|
|
shell: export PATH="$PATH:/var/www/plume/.cargo/bin:/var/www/plume/.local/bin:/usr/local/sbin"
|
|
become: yes
|
|
become_user: plume
|
|
when: plumefolder.stat.exists == False
|
|
|
|
- name: Clone plume repo
|
|
git:
|
|
repo: https://github.com/Plume-org/Plume.git
|
|
dest: /var/www/plume/www
|
|
force: yes
|
|
become: yes
|
|
become_user: plume
|
|
|
|
#- name: install diesel
|
|
# shell: "cd /var/www/plume/www && /var/www/plume/.cargo/bin/cargo install -j 1 diesel_cli --no-default-features --features postgres --version '=1.3.0' --force"
|
|
# become: yes
|
|
# become_user: plume
|
|
|
|
- name: build front-end
|
|
shell: "cd /var/www/plume/www && /var/www/plume/.cargo/bin/cargo install -j 1 cargo-web --force"
|
|
become: yes
|
|
become_user: plume
|
|
|
|
- name: Build front-end
|
|
shell: "cd /var/www/plume/www && /var/www/plume/.cargo/bin/cargo web deploy -p plume-front"
|
|
become: yes
|
|
become_user: plume
|
|
|
|
- name: Build the back-end
|
|
shell: "cd /var/www/plume/www && /var/www/plume/.cargo/bin/cargo install -j 1 --no-default-features --features postgres --force"
|
|
become: yes
|
|
become_user: plume
|
|
|
|
- name: Build plm, the CLI helper
|
|
shell: "cd /var/www/plume/www && /var/www/plume/.cargo/bin/cargo install -j 1 --no-default-features --features postgres --path plume-cli --force"
|
|
become: yes
|
|
become_user: plume
|
|
|
|
#- debug:
|
|
# msg: "{{ plume }}"
|
|
|
|
- name: Add ssh ignore host
|
|
template:
|
|
src: env.j2
|
|
dest: /var/www/plume/www/.env
|
|
mode: 0644
|
|
owner: plume
|
|
group: plume
|
|
|
|
- name: "Diesel run"
|
|
shell: "/var/www/plume/.cargo/bin/plm migration run"
|
|
args:
|
|
chdir: /var/www/plume/www
|
|
become: yes
|
|
become_user: plume
|
|
|
|
- name: "Initialise Plume"
|
|
shell: "/var/www/plume/.cargo/bin/plm instance new --name {{ plume.name }} --domain {{ plume.domain }} --default-license {{ plume.licence }}"
|
|
args:
|
|
chdir: /var/www/plume/www
|
|
become: yes
|
|
become_user: plume
|
|
when: plumefolder.stat.exists == False
|
|
|
|
- name: Generate password
|
|
shell: "pwgen 21 1"
|
|
become: yes
|
|
become_user: plume
|
|
register: password
|
|
when: plumefolder.stat.exists == False
|
|
|
|
- name: Display Password
|
|
debug: msg={{ password.stdout }}
|
|
when: plumefolder.stat.exists == False
|
|
|
|
- name: Initialise Plume
|
|
shell: "/var/www/plume/.cargo/bin/plm users new --admin --display-name {{ plume.display_name }} --name {{ plume.admin_name }} --password {{ password.stdout }} --email {{ plume.admin_email }}"
|
|
args:
|
|
chdir: /var/www/plume/www
|
|
become: yes
|
|
become_user: plume
|
|
when: plumefolder.stat.exists == False
|
|
|
|
- name: Initialise Plume
|
|
shell: "cd /var/www/plume/www && /var/www/plume/.cargo/bin/plm search init"
|
|
become: yes
|
|
become_user: plume
|
|
when: plumefolder.stat.exists == False
|
|
|
|
- name: Copy plume service
|
|
copy:
|
|
src: plume.service
|
|
dest: /etc/systemd/system/plume.service
|
|
owner: root
|
|
group: root
|
|
mode: 0640
|
|
|
|
- name: Reload systemd
|
|
shell: "systemctl daemon-reload"
|
|
|
|
- name: Start service plume
|
|
service:
|
|
name: plume.service
|
|
state: started
|
|
when: plumefolder.stat.exists == False
|
|
|
|
- name: Restart service plume
|
|
service:
|
|
name: plume.service
|
|
state: restarted
|
|
when: plumefolder.stat.exists == True
|
|
|
|
- name: Enable service plume
|
|
service:
|
|
name: plume.service
|
|
enabled: yes
|