Eerste grote update:
- Wissen standaard accounts - Zetten root password - Aanmaken databases - Aanmaken gebruikers per database - Lege files klaar zetten voor backup, slave, config
This commit is contained in:
49
inventory/group_vars/mysql_dev.yml
Normal file
49
inventory/group_vars/mysql_dev.yml
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
---
|
||||||
|
mysql_root_password: TODO-Vault
|
||||||
|
nfsdir: /var/backup/mysql
|
||||||
|
|
||||||
|
|
||||||
|
db_clients:
|
||||||
|
- h1
|
||||||
|
- localhost
|
||||||
|
|
||||||
|
nodes:
|
||||||
|
- node: h112
|
||||||
|
slaves:
|
||||||
|
- h235:
|
||||||
|
db:
|
||||||
|
- name: db1
|
||||||
|
users:
|
||||||
|
- name: db1_admin
|
||||||
|
password: TODO-Vault
|
||||||
|
priv: ALL
|
||||||
|
- name: db1_user
|
||||||
|
password: TODO-Vault
|
||||||
|
priv: "select,insert,update,delete"
|
||||||
|
- name: db1_read
|
||||||
|
password: TODO-Vault
|
||||||
|
priv: "select"
|
||||||
|
- name: db1_absent
|
||||||
|
password: TODO-Vault
|
||||||
|
priv: "select"
|
||||||
|
state: absent
|
||||||
|
- name: db2
|
||||||
|
users:
|
||||||
|
- name: db2_admin
|
||||||
|
password: TODO-Vault
|
||||||
|
priv: ALL
|
||||||
|
- node: h235
|
||||||
|
slaves:
|
||||||
|
- h112:
|
||||||
|
db:
|
||||||
|
- name: db3
|
||||||
|
users:
|
||||||
|
- name: db3_admin
|
||||||
|
password: TODO-Vault
|
||||||
|
priv: ALL
|
||||||
|
- name: db4
|
||||||
|
state: absent
|
||||||
|
users:
|
||||||
|
- name: db4_admin
|
||||||
|
password: TODO-Vault
|
||||||
|
priv: ALL
|
7
inventory/hosts
Normal file
7
inventory/hosts
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
mysql_dev:
|
||||||
|
hosts:
|
||||||
|
h112:
|
||||||
|
ansible_user: root
|
||||||
|
h235:
|
||||||
|
ansible_user: root
|
@@ -1,2 +1,2 @@
|
|||||||
---
|
---
|
||||||
# defaults file for dbnode
|
# defaults file for mysql
|
@@ -1,5 +1,2 @@
|
|||||||
---
|
---
|
||||||
- name: Restart MariaDB service
|
# handlers file for mysql
|
||||||
service:
|
|
||||||
name: mariadb
|
|
||||||
state: restarted
|
|
@@ -50,6 +50,4 @@ galaxy_info:
|
|||||||
dependencies: []
|
dependencies: []
|
||||||
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
|
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
|
||||||
# if you add dependencies to this list.
|
# if you add dependencies to this list.
|
||||||
|
|
||||||
collections:
|
|
||||||
- community.mysql
|
|
@@ -1,28 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Create volume group vgdata
|
|
||||||
lvg:
|
|
||||||
vg: vgdata
|
|
||||||
pvs: /dev/sdc
|
|
||||||
|
|
||||||
- name: "Create a logical volume lv_var_lib_mysql of size: {{ disk_var_lib_mysql_size }}"
|
|
||||||
lvol:
|
|
||||||
vg: vgdata
|
|
||||||
lv: lv_var_lib_mysql
|
|
||||||
size: "{{ disk_var_lib_mysql_size }}"
|
|
||||||
|
|
||||||
- name: Create a xfs filesystem on /dev/vgdata/lv_var_lib_mysql
|
|
||||||
filesystem:
|
|
||||||
fstype: xfs
|
|
||||||
dev: /dev/vgdata/lv_var_lib_mysql
|
|
||||||
|
|
||||||
- name: Create directory /var/lib/mysql
|
|
||||||
file:
|
|
||||||
path: /var/lib/mysql
|
|
||||||
state: directory
|
|
||||||
|
|
||||||
- name: Mount /var/lib/mysql
|
|
||||||
mount:
|
|
||||||
path: /var/lib/mysql
|
|
||||||
src: /dev/vgdata/lv_var_lib_mysql
|
|
||||||
fstype: xfs
|
|
||||||
state: mounted
|
|
@@ -1,12 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: Install the MariaDB packages
|
- name: Install the MariaDB packages
|
||||||
dnf:
|
dnf:
|
||||||
name: [mariadb-server, python3-pip]
|
name:
|
||||||
|
- mariadb-server
|
||||||
|
- python3-PyMySQL
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: "Install python packages"
|
|
||||||
pip:
|
|
||||||
name: "{{ python_packages }}"
|
|
||||||
environment:
|
|
||||||
HTTP_PROXY: "{{ webproxy }}"
|
|
||||||
HTTPS_PROXY: "{{ webproxy }}"
|
|
||||||
|
@@ -1,6 +1,9 @@
|
|||||||
---
|
---
|
||||||
- include_tasks: filesystem.yml
|
#- include_tasks: install.yml
|
||||||
- include_tasks: install.yml
|
#- include_tasks: mysql_config.yml
|
||||||
- include_tasks: service.yml
|
#- include_tasks: service.yml
|
||||||
- include_tasks: mysql_user.yml
|
#- include_tasks: mysql_user.yml
|
||||||
- include_tasks: mysql_db.yml
|
- include_tasks: mysql_nodes.yml
|
||||||
|
#- include_tasks: mysql_db.yml
|
||||||
|
#- include_tasks: mysql_slaves.yml
|
||||||
|
#- include_tasks: mysql_backup.yml
|
||||||
|
4
roles/mysql/tasks/mysql_backup.yml
Normal file
4
roles/mysql/tasks/mysql_backup.yml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
- name: todo backup
|
||||||
|
debug:
|
||||||
|
msg: "todo backup"
|
4
roles/mysql/tasks/mysql_config.yml
Normal file
4
roles/mysql/tasks/mysql_config.yml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
- name: todo config
|
||||||
|
debug:
|
||||||
|
msg: "todo config"
|
@@ -1,18 +1,14 @@
|
|||||||
---
|
---
|
||||||
- name: Create a database with name 'lavs_alfresco'
|
- name: Create databases
|
||||||
community.mysql.mysql_db:
|
community.mysql.mysql_db:
|
||||||
check_implicit_admin: yes
|
check_implicit_admin: yes
|
||||||
name: lavs_alfresco
|
name: "{{ db.name }}"
|
||||||
state: present
|
state: "{{ db.state|default('present') }}"
|
||||||
|
loop: "{{ node.db }}"
|
||||||
- name: Create a database with name 'lavs_zm'
|
loop_control:
|
||||||
community.mysql.mysql_db:
|
loop_var: db
|
||||||
check_implicit_admin: yes
|
- name: Create users for db
|
||||||
name: lavs_zm
|
include_tasks: mysql_db_users.yml
|
||||||
state: present
|
loop: "{{ node.db }}"
|
||||||
|
loop_control:
|
||||||
- name: Create a database with name 'lavs_systeem'
|
loop_var: db
|
||||||
community.mysql.mysql_db:
|
|
||||||
check_implicit_admin: yes
|
|
||||||
name: lavs_systeem
|
|
||||||
state: present
|
|
||||||
|
11
roles/mysql/tasks/mysql_db_users.yml
Normal file
11
roles/mysql/tasks/mysql_db_users.yml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
- name: Create users
|
||||||
|
community.mysql.mysql_user:
|
||||||
|
name: "{{ user[0].name }}"
|
||||||
|
password: "{{ user[0].password }}"
|
||||||
|
state: "{{ user[0].state|default(db.state)|default('present') }}"
|
||||||
|
host: "{{ user[1] }}"
|
||||||
|
priv: "{{db.name}}.*:{{ user[0].priv|default('ALL') }}"
|
||||||
|
loop: "{{ db.users|product(db_clients)|list }}"
|
||||||
|
loop_control:
|
||||||
|
loop_var: user
|
7
roles/mysql/tasks/mysql_nodes.yml
Normal file
7
roles/mysql/tasks/mysql_nodes.yml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
- name: Loop over nodes to create db
|
||||||
|
include_tasks: mysql_db.yml
|
||||||
|
with_items: "{{ nodes }}"
|
||||||
|
loop_control:
|
||||||
|
loop_var: node
|
||||||
|
when: (ansible_nodename == node.node)
|
4
roles/mysql/tasks/mysql_slaves.yml
Normal file
4
roles/mysql/tasks/mysql_slaves.yml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
- name: todo slaves
|
||||||
|
debug:
|
||||||
|
msg: "todo slaves"
|
@@ -4,30 +4,26 @@
|
|||||||
name: root
|
name: root
|
||||||
host: "{{ ansible_fqdn }}"
|
host: "{{ ansible_fqdn }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
- name: Remove remote root account (::1)
|
||||||
- name: "Create lavs user for {{ ansible_fqdn }}"
|
|
||||||
community.mysql.mysql_user:
|
community.mysql.mysql_user:
|
||||||
name: lavs
|
name: root
|
||||||
password: "{{ db_lavs_password }}"
|
host: ::1
|
||||||
host: "{{ db_remote_host }}"
|
state: absent
|
||||||
state: present
|
- name: Remove remote root account (127.0.0.1)
|
||||||
priv:
|
|
||||||
'lavs_alfresco.*': 'ALL'
|
|
||||||
|
|
||||||
- name: "Create zm_user user for {{ ansible_fqdn }}"
|
|
||||||
community.mysql.mysql_user:
|
community.mysql.mysql_user:
|
||||||
name: zm_user
|
name: root
|
||||||
password: "{{ db_zm_user_password }}"
|
host: 127.0.0.1
|
||||||
host: "{{ db_remote_host }}"
|
state: absent
|
||||||
state: present
|
- name: Set root password for root@localhost
|
||||||
priv:
|
|
||||||
'lavs_zm.*': 'ALL'
|
|
||||||
|
|
||||||
- name: "Create lars_user user for {{ ansible_fqdn }}"
|
|
||||||
community.mysql.mysql_user:
|
community.mysql.mysql_user:
|
||||||
name: lars_user
|
name: root
|
||||||
password: "{{ db_lars_user_password }}"
|
host: localhost
|
||||||
host: "{{ db_remote_host }}"
|
password: "{{ mysql_root_password }}"
|
||||||
state: present
|
state: present
|
||||||
priv:
|
- name: Create my.cnf
|
||||||
'lavs_systeem.*': 'ALL'
|
ansible.builtin.template:
|
||||||
|
src: my.cnf.j2
|
||||||
|
dest: /root/.my.cnf
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0600
|
||||||
|
11
roles/mysql/templates/my.cnf.j2
Normal file
11
roles/mysql/templates/my.cnf.j2
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
[client]
|
||||||
|
user=root
|
||||||
|
password={{ mysql_root_password }}
|
||||||
|
|
||||||
|
[mysql]
|
||||||
|
user=root
|
||||||
|
password={{ mysql_root_password }}
|
||||||
|
|
||||||
|
[mariabackup]
|
||||||
|
user=root
|
||||||
|
password={{ mysql_root_password }}
|
@@ -2,4 +2,4 @@
|
|||||||
- hosts: localhost
|
- hosts: localhost
|
||||||
remote_user: root
|
remote_user: root
|
||||||
roles:
|
roles:
|
||||||
- dbnode
|
- mysql
|
@@ -1,2 +1,2 @@
|
|||||||
---
|
---
|
||||||
python_packages: [pymysql >= 1.0.2]
|
# vars file for mysql
|
Reference in New Issue
Block a user