You've already forked percona
first draft
This commit is contained in:
22
tasks/configure.yml
Normal file
22
tasks/configure.yml
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
- name: percona | configure Percona Server
|
||||
template:
|
||||
src: my.cnf.j2
|
||||
dest: /etc/mysql/conf.d/01-ansible.cnf
|
||||
mode: '0644'
|
||||
notify: Restart Percona Server
|
||||
|
||||
- name: percona | ensure Percona Server is started and enabled
|
||||
service:
|
||||
name: mysql
|
||||
state: started
|
||||
enabled: yes
|
||||
|
||||
- name: percona | update MySQL root password
|
||||
mysql_user:
|
||||
name: root
|
||||
host: localhost
|
||||
password: "{{ percona_root_password }}"
|
||||
login_unix_socket: /var/run/mysqld/mysqld.sock
|
||||
priv: "*.*:ALL,GRANT"
|
||||
ignore_errors: true # In case password is already set and socket auth is disabled
|
||||
10
tasks/databases.yml
Normal file
10
tasks/databases.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
- name: percona | create databases
|
||||
mysql_db:
|
||||
name: "{{ item.name }}"
|
||||
collation: "{{ item.collation | default(omit) }}"
|
||||
encoding: "{{ item.encoding | default(omit) }}"
|
||||
state: present
|
||||
login_user: root
|
||||
login_password: "{{ percona_root_password }}"
|
||||
loop: "{{ percona_databases }}"
|
||||
27
tasks/install.yml
Normal file
27
tasks/install.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
- name: percona | download Percona release package
|
||||
get_url:
|
||||
url: "{{ percona_release_package_url }}"
|
||||
dest: /tmp/percona-release_latest.generic_all.deb
|
||||
mode: '0644'
|
||||
|
||||
- name: percona | install Percona release package
|
||||
apt:
|
||||
deb: /tmp/percona-release_latest.generic_all.deb
|
||||
state: present
|
||||
|
||||
- name: percona | determine Percona release string
|
||||
set_fact:
|
||||
percona_release_string: >-
|
||||
{% if percona_version == '8.4' %}ps-84-lts{% elif percona_version == '8.0' %}ps-80{% else %}ps-80{% endif %}
|
||||
|
||||
- name: percona | enable Percona repository
|
||||
command: "percona-release setup -y {{ percona_release_string }}"
|
||||
args:
|
||||
creates: "/etc/apt/sources.list.d/percona-{{ percona_release_string }}-release.list"
|
||||
|
||||
- name: percona | install Percona Server
|
||||
apt:
|
||||
name: percona-server-server
|
||||
state: present
|
||||
update_cache: yes
|
||||
16
tasks/main.yml
Normal file
16
tasks/main.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
- name: percona | requirements
|
||||
include_tasks: requirements.yml
|
||||
|
||||
- name: percona | installation
|
||||
include_tasks: install.yml
|
||||
|
||||
- name: percona | configuration
|
||||
include_tasks: configure.yml
|
||||
|
||||
- name: percona | databases
|
||||
include_tasks: databases.yml
|
||||
|
||||
- name: percona | users
|
||||
include_tasks: users.yml
|
||||
|
||||
20
tasks/requirements.yml
Normal file
20
tasks/requirements.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
- name: percona | apt update cache
|
||||
ansible.builtin.apt:
|
||||
update_cache: yes
|
||||
cache_valid_time: 86400
|
||||
|
||||
- name: percona | install requirements
|
||||
ansible.builtin.apt:
|
||||
name:
|
||||
- apt-transport-https
|
||||
- lsb-release
|
||||
- ca-certificates
|
||||
- curl
|
||||
- gnupg2
|
||||
state: present
|
||||
|
||||
- name: percona | install python3-pymysql for database management
|
||||
ansible.builtin.apt:
|
||||
name: python3-pymysql
|
||||
state: present
|
||||
11
tasks/users.yml
Normal file
11
tasks/users.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
- name: percona | create users
|
||||
mysql_user:
|
||||
name: "{{ item.name }}"
|
||||
password: "{{ item.password }}"
|
||||
host: "{{ item.host | default('%') }}"
|
||||
priv: "{{ item.priv | default('*.*:USAGE') }}"
|
||||
state: present
|
||||
login_user: root
|
||||
login_password: "{{ percona_root_password }}"
|
||||
loop: "{{ percona_users }}"
|
||||
Reference in New Issue
Block a user