Tons of updates including erpnext, fusionauth, kong, elasticsearch, postgres-12, opennebula-5.10...

This commit is contained in:
2020-04-15 18:46:59 -06:00
parent 957ff8bb8e
commit 0d76f1eb12
73 changed files with 4532 additions and 29 deletions

View File

@@ -0,0 +1,133 @@
---
# # Pip install frappe-bench
# - name: Installing pip frappe-bench
# pip:
# name:
# - frappe-bench
# # Create {{ base }} directory
# - name: Creating {{ base }} directory
# file:
# path: '{{ base }}'
# state: directory
# owner: toor
# group: toor
# mode: '0755'
# # Run frappe bench init
# - name: Running frappe bench init
# # NOTICE: running as toor
# become_user: toor
# shell: bench init {{ projectname }} --frappe-branch version-12 --no-backups
# args:
# chdir: '{{ base }}'
# # Ensures this command only runs if the dir does NOT exist
# creates: '{{ path }}'
# when: frappe_repo is undefined
# # Run frappe bench init with custom repo
# - name: Running frappe bench init with custom repo
# # NOTICE: running as toor
# become_user: toor
# shell: bench init {{ projectname }} --frappe-path {{ frappe_repo }} --frappe-branch version-12 --no-backups
# args:
# chdir: '{{ base }}'
# # Ensures this command only runs if the dir does NOT exist
# creates: '{{ path }}'
# when: frappe_repo is defined
# # Create frappe-bench supervisor configs
# - name: Creating frappe-bench supervisor config
# become_user: toor
# shell: bench setup supervisor
# args:
# chdir: '{{ path }}'
# creates: '{{ path }}/config/supervisor.conf'
# # Symlink frappe-bench supervisor config
# - name: Symlinking frappe-bench supervisor config
# file:
# src: '{{ path }}/config/supervisor.conf'
# dest: /etc/supervisor/conf.d/frappe-bench.conf
# state: link
# notify: reload supervisor
# # Get ERPNext app
# - name: Getting ERPNext app
# become_user: toor
# shell: bench get-app erpnext --branch version-12
# args:
# chdir: '{{ path }}'
# creates: '{{ path }}/apps/erpnext'
# notify: reload supervisor
# when: erpnext_repo is undefined
# # Get ERPNext app from custom repo
# - name: Getting ERPNext app from custom repo
# become_user: toor
# shell: bench get-app erpnext {{ erpnext_repo }} --branch version-12
# args:
# chdir: '{{ path }}'
# creates: '{{ path }}/apps/erpnext'
# notify: reload supervisor
# when: erpnext_repo is defined
# # Settings frappe bench mariadb-host
# - name: Setting frappe bench mariadb-host
# become_user: toor
# shell: bench set-mariadb-host {{ db_host }}
# args:
# chdir: '{{ path }}'
# when: db_host is defined
# # Create new site using local database
# - name: Creating new frappe site using local database
# become_user: toor
# shell: bench new-site {{ site }} --admin-password {{ erpnext_admin_password }} --db-name {{ db_name }} --db-password {{ erpnext_db_password }} --mariadb-root-username root --mariadb-root-password {{ root_db_password }} --force
# args:
# chdir: '{{ path }}'
# creates: '{{ path }}/sites/{{ site }}'
# notify: reload supervisor
# when: db_host is undefined
# # Create new site using remote database
# - name: Creating new frappe site using remote database
# become_user: toor
# shell: bench new-site {{ site }} --admin-password {{ erpnext_admin_password }} --db-name {{ db_name }} --db-password {{ erpnext_db_password }} --mariadb-root-username root --mariadb-root-password {{ root_db_password }} --force --no-mariadb-socket
# args:
# chdir: '{{ path }}'
# creates: '{{ path }}/sites/{{ site }}'
# notify: reload supervisor
# when: db_host is defined
# Adding ERPNext to site
- name: Adding ERPNext to site
become_user: toor
shell: bench --site {{ site }} install-app erpnext
args:
chdir: '{{ path }}'
creates: '{{ path }}/sites/{{ site }}/ansible-flag-app-erpnext-added'
notify: reload supervisor
# Create frappe-bench nginx configs
- name: Creating frappe-bench nginx config
become_user: toor
shell: bench setup nginx
args:
chdir: '{{ path }}'
creates: '{{ path }}/config/nginx.conf'
# Delete /etc/nginx/sites-enabled/default
- name: Deleting /etc/nginx/sites-enabled/default
file:
path: /etc/nginx/sites-enabled/default
state: absent
notify: reload nginx
# Symlink frappe-bench nginx config
- name: Symlinking frappe-bench nginx config
file:
src: '{{ path }}/config/nginx.conf'
dest: /etc/nginx/sites-enabled/erpnext.conf
state: link
notify: reload nginx

View File

@@ -0,0 +1,9 @@
---
# Copy ssh client config for toor user so we can git clone without confirmation
- name: Copying toor SSH client config
copy:
src: 'ssh.config'
dest: '/home/toor/.ssh/config'
owner: toor
group: toor
mode: '0644'

View File

@@ -0,0 +1,30 @@
---
# Install mariadb-client
# Required regardless if MySQL server is local or remote
- name: Installing mariadb-client
apt:
update_cache: yes
state: present
name:
- mariadb-client
# Enable root password (only if using localhost db)
- name: Enable MySQL root password
shell: "{{ item }}"
with_items:
- mysql -e "CREATE USER 'root'@'%' IDENTIFIED BY '{{ root_db_password }}'; GRANT ALL PRIVILEGES ON *.* to 'root'@'%';"
- mysql -e "ALTER USER 'root'@'%' IDENTIFIED VIA mysql_native_password; SET PASSWORD = PASSWORD('{{ root_db_password }}');"
args:
# Ensure this runs only once
creates: ~/.config/ansible-flag-mysql-password-enabled
notify: restart mysql
# Copy MariaDB /etc/mysql/mariadb.conf.d/60-frappe.cnf
- name: Copying /etc/mysql/mariadb.conf.d/60-frappe.cnf
copy:
src: mysql/60-frappe.cnf
dest: /etc/mysql/mariadb.conf.d/60-frappe.cnf
owner: root
group: root
mode: '0644'
notify: restart mysql

View File

@@ -0,0 +1,6 @@
---
# Install nodejs yarn globally
- name: Installing nodejs yarn globally
npm:
name: yarn
global: yes

View File

@@ -0,0 +1,22 @@
---
# Install python3-pip
- name: Installing python3-pip
apt:
update_cache: yes
state: present
name:
- python3-pip
# Update alternatives to python3
- name: Updating alternatives to python3
alternatives:
name: python
link: /usr/bin/python
path: /usr/bin/python3
# Update alternatives to pip3
- name: Updating alternatives for pip3
alternatives:
name: pip
link: /usr/bin/pip
path: /usr/bin/pip3

View File

@@ -0,0 +1,12 @@
---
# NOTICE: Commands like frappe bench and git clone need to run
# as the toor user, not root. The playbook that runs this role
# should be logging in as toor, using become:yes with toors ssh key
# Because become:yes all command still run as root, until I use
# become_user: toor below.
#- include_tasks: configure-linux.yml
#- include_tasks: configure-mysql.yml
#- include_tasks: configure-python.yml
#- include_tasks: configure-nodejs.yml
- include_tasks: configure-erpnext.yml