initial extraction
commit
0e2ff1a70c
@ -0,0 +1,9 @@
|
||||
Ansible role for dokos
|
||||
==========================
|
||||
|
||||
This role is not packaged, as it's very specific to Distrilab ansible context, but hopefully it may serve as an inspiration for other people that want to install dokos 3.x.x with ansible in their context.
|
||||
|
||||
This follow the manual; procedure initially tested and detailed on:
|
||||
|
||||
- https://md.distrilab.fr/xQu1bFRnSIWDT2qv5unzxw?both
|
||||
|
@ -0,0 +1,9 @@
|
||||
dokos_user: dokos-user
|
||||
nvm_version: v0.39.1
|
||||
node_version: v14.20.0
|
||||
dodock_tag: v3.3.1
|
||||
dokos_tag: v3.1.3
|
||||
site_fqdn: dokos.local
|
||||
admin_password: CHANGE_ME_NOW
|
||||
# set a password otherwise it won't work (for now)
|
||||
mysql_root_password: CHANGE_ME_NOW_TOO
|
@ -0,0 +1,7 @@
|
||||
[mysqld]
|
||||
character-set-client-handshake = FALSE
|
||||
character-set-server = utf8mb4
|
||||
collation-server = utf8mb4_unicode_ci
|
||||
|
||||
[mysql]
|
||||
default-character-set = utf8mb4
|
@ -0,0 +1,14 @@
|
||||
- name: mariadb restart
|
||||
service:
|
||||
name: mariadb
|
||||
state: restarted
|
||||
|
||||
- name: nginx restart
|
||||
service:
|
||||
name: nginx
|
||||
state: restarted
|
||||
|
||||
- name: frappe restart
|
||||
service:
|
||||
name: frappe-bench.target
|
||||
state: restarted
|
@ -0,0 +1,84 @@
|
||||
|
||||
- name: dokos | dependencies | install node 16 source
|
||||
tags: packages
|
||||
shell: curl -sL https://deb.nodesource.com/setup_16.x | bash -
|
||||
args:
|
||||
creates: /etc/apt/sources.list.d/nodesource.list
|
||||
|
||||
- name: dokos | dependencies | install yarn source key
|
||||
tags: packages
|
||||
shell: >
|
||||
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg |
|
||||
gpg --dearmor |
|
||||
tee /usr/share/keyrings/yarnkey.gpg > /dev/null
|
||||
args:
|
||||
creates: /usr/share/keyrings/yarnkey.gpg
|
||||
|
||||
- name: dokos | dependencies | install yarn apt source
|
||||
tags: packages
|
||||
shell: >
|
||||
echo 'deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main' |
|
||||
sudo tee /etc/apt/sources.list.d/yarn.list
|
||||
args:
|
||||
creates: /etc/apt/sources.list.d/yarn.list
|
||||
|
||||
- name: dokos | dependencies | apt packages
|
||||
tags: packages
|
||||
package:
|
||||
state: latest
|
||||
update_cache: yes
|
||||
name:
|
||||
- git
|
||||
- software-properties-common
|
||||
- build-essential
|
||||
- python3-dev
|
||||
- python3-pip
|
||||
- python3-venv
|
||||
- python3-setuptools
|
||||
- redis-server
|
||||
- nginx
|
||||
- mariadb-server-10.5
|
||||
- xvfb
|
||||
- libfontconfig
|
||||
- wkhtmltopdf
|
||||
- nodejs
|
||||
- yarn
|
||||
|
||||
- name: dokos | dependencies | mariadb utf8 config
|
||||
tags: mysql-setup
|
||||
copy:
|
||||
src: mariadb-90-want-utf8.cnf
|
||||
dest: /etc/mysql/mariadb.conf.d/90-want-utf8.cnf
|
||||
notify: mariadb restart
|
||||
|
||||
- name: dokos | dependencies | mariadb Set root Password
|
||||
tags: mysql-setup
|
||||
community.mysql.mysql_user:
|
||||
check_implicit_admin: yes
|
||||
host: localhost
|
||||
name: root
|
||||
password: "{{ mysql_root_password }}"
|
||||
state: present
|
||||
|
||||
- name: dokos | dependencies | Add .my.cnf for root
|
||||
tags: mysql-setup
|
||||
template:
|
||||
src: my.cnf.j2
|
||||
dest: /root/.my.cnf
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0600
|
||||
|
||||
- name: Removes all anonymous user accounts
|
||||
community.mysql.mysql_user:
|
||||
name: ''
|
||||
host_all: yes
|
||||
state: absent
|
||||
|
||||
# - name: dokos | dependencies | pip install frappe-bench
|
||||
# pip:
|
||||
# name: frappe-bench
|
||||
|
||||
- name: dokos | dependencies | pip install dokos-cli
|
||||
pip:
|
||||
name: dokos-cli
|
@ -0,0 +1,127 @@
|
||||
- name: dokos | install | install bench
|
||||
become: yes
|
||||
become_user: "{{ dokos_user }}"
|
||||
shell: >
|
||||
bash -ci "
|
||||
bench init frappe-bench
|
||||
--frappe-path https://gitlab.com/dokos/dodock
|
||||
--frappe-branch {{ dodock_tag }}
|
||||
--python /usr/local/bin/python3.10
|
||||
--no-procfile"
|
||||
args:
|
||||
creates: "/home/{{ dokos_user }}/frappe-bench"
|
||||
chdir: /home/{{ dokos_user }}
|
||||
|
||||
- name: dokos | install | bench setup config
|
||||
become: yes
|
||||
become_user: "{{ dokos_user }}"
|
||||
command: bench setup config
|
||||
args:
|
||||
creates: "/home/{{ dokos_user }}/frappe-bench/sites/common_site_config.json"
|
||||
chdir: /home/{{ dokos_user }}/frappe-bench
|
||||
|
||||
- name: dokos | install | get-app
|
||||
become: yes
|
||||
become_user: "{{ dokos_user }}"
|
||||
command: bench get-app erpnext https://gitlab.com/dokos/dokos --branch {{ dokos_tag }}
|
||||
args:
|
||||
creates: "/home/{{ dokos_user }}/frappe-bench/apps/erpnext"
|
||||
chdir: /home/{{ dokos_user }}/frappe-bench
|
||||
|
||||
- name: dokos | install | get-app payments
|
||||
become: yes
|
||||
become_user: "{{ dokos_user }}"
|
||||
command: bench get-app https://gitlab.com/dokos/payments --branch v3.x.x
|
||||
args:
|
||||
creates: "/home/{{ dokos_user }}/frappe-bench/apps/payments"
|
||||
chdir: /home/{{ dokos_user }}/frappe-bench
|
||||
|
||||
# - name: dokos | install | get-app hrms
|
||||
# become: yes
|
||||
# become_user: "{{ dokos_user }}"
|
||||
# command: bench get-app https://gitlab.com/dokos/hrms --branch v3.x.x
|
||||
# args:
|
||||
# creates: "/home/{{ dokos_user }}/frappe-bench/apps/hrms"
|
||||
# chdir: /home/{{ dokos_user }}/frappe-bench
|
||||
|
||||
- name: dokos | install | new-site
|
||||
become: yes
|
||||
become_user: "{{ dokos_user }}"
|
||||
command: >
|
||||
bench new-site {{ site_fqdn }}
|
||||
--admin-password '{{ admin_password }}'
|
||||
--mariadb-root-password '{{ mysql_root_password }}'
|
||||
args:
|
||||
creates: "/home/{{ dokos_user }}/frappe-bench/sites/{{ site_fqdn }}"
|
||||
chdir: /home/{{ dokos_user }}/frappe-bench
|
||||
# no_log: yes
|
||||
# diff: no
|
||||
|
||||
- name: dokos | install | install-app
|
||||
become: yes
|
||||
become_user: "{{ dokos_user }}"
|
||||
shell: bench --site {{ site_fqdn }} install-app erpnext
|
||||
args:
|
||||
creates: "/home/{{ dokos_user }}/frappe-bench/sites/apps.txt"
|
||||
chdir: /home/{{ dokos_user }}/frappe-bench
|
||||
|
||||
# - name: dokos | install | install-app
|
||||
# become: yes
|
||||
# become_user: "{{ dokos_user }}"
|
||||
# shell: bench --site {{ site_fqdn }} install-app hrms
|
||||
# args:
|
||||
# creates: "/home/{{ dokos_user }}/frappe-bench/sites/apps.txt"
|
||||
# chdir: /home/{{ dokos_user }}/frappe-bench
|
||||
|
||||
- name: dokos | install | bench setup redis
|
||||
become: yes
|
||||
become_user: "{{ dokos_user }}"
|
||||
command: bench setup redis
|
||||
args:
|
||||
creates: "/home/{{ dokos_user }}/frappe-bench/redis_cache.conf"
|
||||
chdir: /home/{{ dokos_user }}/frappe-bench
|
||||
|
||||
- name: dokos | install | bench setup nginx
|
||||
become: yes
|
||||
become_user: "{{ dokos_user }}"
|
||||
command: bench setup nginx --logging site --log_format combined
|
||||
args:
|
||||
creates: "/home/{{ dokos_user }}/frappe-bench/nginx.conf"
|
||||
chdir: /home/{{ dokos_user }}/frappe-bench
|
||||
|
||||
- name: dokos | install | setup nginx
|
||||
file:
|
||||
src: "/home/{{ dokos_user }}/frappe-bench/config/nginx.conf"
|
||||
dest: /etc/nginx/conf.d/frappe-bench.conf
|
||||
state: link
|
||||
notify: nginx restart
|
||||
|
||||
- name: dokos | install | allow http in ufw
|
||||
ufw:
|
||||
rule: allow
|
||||
port: "80"
|
||||
from_ip: "{{ trust_proxy }}"
|
||||
proto: tcp
|
||||
|
||||
- name: dokos | install | install systemd rules
|
||||
command: bench setup systemd --user dokos-user --yes
|
||||
args:
|
||||
creates: "/home/{{ dokos_user }}/frappe-bench/config/systemd"
|
||||
chdir: /home/{{ dokos_user }}/frappe-bench
|
||||
|
||||
- name: dokos | install | list systemd rules
|
||||
find:
|
||||
paths: /home/{{ dokos_user }}/frappe-bench/config/systemd/
|
||||
file_type: file
|
||||
patterns:
|
||||
- '*.target'
|
||||
- '*.service'
|
||||
register: systemd_list
|
||||
|
||||
- name: dokos | install | deploy systemd rules
|
||||
file:
|
||||
src: "{{ item.path }}"
|
||||
dest: /etc/systemd/system/{{ item.path | basename }}
|
||||
state: link
|
||||
loop: "{{ systemd_list.files }}"
|
||||
notify: frappe restart
|
@ -0,0 +1,12 @@
|
||||
- block:
|
||||
- import_tasks: user.yml
|
||||
tags: user
|
||||
|
||||
- import_tasks: dependencies.yml
|
||||
tags: dependencies
|
||||
|
||||
- import_tasks: python310.yml
|
||||
tags: python310
|
||||
|
||||
- import_tasks: install.yml
|
||||
tags: install
|
@ -0,0 +1,39 @@
|
||||
- name: dokos | python3.10 | apt packages
|
||||
tags: packages
|
||||
package:
|
||||
state: latest
|
||||
update_cache: yes
|
||||
name:
|
||||
- wget
|
||||
- build-essential
|
||||
- libncursesw5-dev
|
||||
- libssl-dev
|
||||
- libsqlite3-dev
|
||||
- tk-dev
|
||||
- libgdbm-dev
|
||||
- libc6-dev
|
||||
- libbz2-dev
|
||||
- libffi-dev
|
||||
- zlib1g-dev
|
||||
|
||||
- name: dokos | python3.10 | get python 3.10 source
|
||||
get_url:
|
||||
url: https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tgz
|
||||
dest: /tmp/Python-3.10.2.tgz
|
||||
|
||||
- name: dokos | python3.10 | extract python 3.10 source
|
||||
unarchive:
|
||||
src: /tmp/Python-3.10.2.tgz
|
||||
dest: /tmp/
|
||||
remote_src: yes
|
||||
|
||||
- name: dokos | python3.10 | python 3.10 configure
|
||||
command:
|
||||
cmd: ./configure --enable-optimizations
|
||||
chdir: /tmp/Python-3.10.2
|
||||
|
||||
- name: dokos | python3.10 | python 3.10 install
|
||||
command:
|
||||
cmd: make altinstall
|
||||
chdir: /tmp/Python-3.10.2
|
||||
|
@ -0,0 +1,12 @@
|
||||
|
||||
- name: dokos | user | create group
|
||||
group:
|
||||
name: "{{ dokos_user }}"
|
||||
state: present
|
||||
|
||||
- name: dokos | user | create user
|
||||
user:
|
||||
name: "{{ dokos_user }}"
|
||||
group: "{{ dokos_user }}"
|
||||
shell: /bin/bash
|
||||
state: present
|
@ -0,0 +1,3 @@
|
||||
[client]
|
||||
user=root
|
||||
password={{ mysql_root_password }}
|
Loading…
Reference in New Issue