This repository has been archived on 2021-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
plume/roles/plume/tasks/main.yml

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