diff --git a/CHANGELOG.md b/CHANGELOG.md index 67d108b5..2c20eed1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ The **patch** part changes incrementally at each release. ### Added * filebeat: disable cloud_metadata processor by default * metricbeat: disable cloud_metadata processor by default +* percona : new role to install Percona repositories and tools * redis: add variable for configure unixsocketperm ### Changed diff --git a/percona/defaults/main.yml b/percona/defaults/main.yml new file mode 100644 index 00000000..46a86904 --- /dev/null +++ b/percona/defaults/main.yml @@ -0,0 +1,4 @@ +--- + +percona__install_xtrabackup: True +percona__xtrabackup_package_name: percona-xtrabackup-24 diff --git a/percona/files/percona-release_latest.jessie_all.deb b/percona/files/percona-release_latest.jessie_all.deb new file mode 100644 index 00000000..a387f361 Binary files /dev/null and b/percona/files/percona-release_latest.jessie_all.deb differ diff --git a/percona/files/percona-release_latest.stretch_all.deb b/percona/files/percona-release_latest.stretch_all.deb new file mode 100644 index 00000000..5479137e Binary files /dev/null and b/percona/files/percona-release_latest.stretch_all.deb differ diff --git a/percona/files/percona.asc b/percona/files/percona.asc new file mode 100644 index 00000000..1c78566d --- /dev/null +++ b/percona/files/percona.asc @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.9 (GNU/Linux) + +mQGiBEsm3aERBACyB1E9ixebIMRGtmD45c6c/wi2IVIa6O3G1f6cyHH4ump6ejOi +AX63hhEs4MUCGO7KnON1hpjuNN7MQZtGTJC0iX97X2Mk+IwB1KmBYN9sS/OqhA5C +itj2RAkug4PFHR9dy21v0flj66KjBS3GpuOadpcrZ/k0g7Zi6t7kDWV0hwCgxCa2 +f/ESC2MN3q3j9hfMTBhhDCsD/3+iOxtDAUlPMIH50MdK5yqagdj8V/sxaHJ5u/zw +YQunRlhB9f9QUFfhfnjRn8wjeYasMARDctCde5nbx3Pc+nRIXoB4D1Z1ZxRzR/lb +7S4i8KRr9xhommFnDv/egkx+7X1aFp1f2wN2DQ4ecGF4EAAVHwFz8H4eQgsbLsa6 +7DV3BACj1cBwCf8tckWsvFtQfCP4CiBB50Ku49MU2Nfwq7durfIiePF4IIYRDZgg +kHKSfP3oUZBGJx00BujtTobERraaV7lIRIwETZao76MqGt9K1uIqw4NT/jAbi9ce +rFaOmAkaujbcB11HYIyjtkAGq9mXxaVqCC3RPWGr+fqAx/akBLQ2UGVyY29uYSBN +eVNRTCBEZXZlbG9wbWVudCBUZWFtIDxteXNxbC1kZXZAcGVyY29uYS5jb20+iGAE +ExECACAFAksm3aECGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRAcTL3NzS79 +Kpk/AKCQKSEgwX9r8jR+6tAnCVpzyUFOQwCfX+fw3OAoYeFZB3eu2oT8OBTiVYu5 +Ag0ESybdoRAIAKKUV8rbqlB8qwZdWlmrwQqg3o7OpoAJ53/QOIySDmqy5TmNEPLm +lHkwGqEqfbFYoTbOCEEJi2yFLg9UJCSBM/sfPaqb2jGP7fc0nZBgUBnFuA9USX72 +O0PzVAF7rCnWaIz76iY+AMI6xKeRy91TxYo/yenF1nRSJ+rExwlPcHgI685GNuFG +chAExMTgbnoPx1ka1Vqbe6iza+FnJq3f4p9luGbZdSParGdlKhGqvVUJ3FLeLTqt +caOn5cN2ZsdakE07GzdSktVtdYPT5BNMKgOAxhXKy11IPLj2Z5C33iVYSXjpTelJ +b2qHvcg9XDMhmYJyE3O4AWFh2no3Jf4ypIcABA0IAJO8ms9ov6bFqFTqA0UW2gWQ +cKFN4Q6NPV6IW0rV61ONLUc0VFXvYDtwsRbUmUYkB/L/R9fHj4lRUDbGEQrLCoE+ +/HyYvr2rxP94PT6Bkjk/aiCCPAKZRj5CFUKRpShfDIiow9qxtqv7yVd514Qqmjb4 +eEihtcjltGAoS54+6C3lbjrHUQhLwPGqlAh8uZKzfSZq0C06kTxiEqsG6VDDYWy6 +L7qaMwOqWdQtdekKiCk8w/FoovsMYED2qlWEt0i52G+0CjoRFx2zNsN3v4dWiIhk +ZSL00Mx+g3NA7pQ1Yo5Vhok034mP8L2fBLhhWaK3LG63jYvd0HLkUFhNG+xjkpeI +SQQYEQIACQUCSybdoQIbDAAKCRAcTL3NzS79KlacAJ0aAkBQapIaHNvmAhtVjLPN +wke4ZgCePe3sPPF49lBal7QaYPdjqapa1SQ= +=qcCk +-----END PGP PUBLIC KEY BLOCK----- diff --git a/percona/tasks/main.yml b/percona/tasks/main.yml new file mode 100644 index 00000000..cce78c3a --- /dev/null +++ b/percona/tasks/main.yml @@ -0,0 +1,45 @@ +--- + +- set_fact: + percona__apt_config_package_file: "percona-release_latest.{{ ansible_distribution_release }}_all.deb" + +- name: Add Percona's official GPG key + apt_key: + data: "{{ lookup('file', 'percona.asc') }}" + +- name: Check if percona-release is installed + command: "dpkg -l percona-release" + failed_when: False + changed_when: False + register: percona__apt_config_package_installed + +- name: Percona APT config package is available + copy: + src: "{{ percona__apt_config_package_file }}" + dest: "/root/{{ percona__apt_config_package_file }}" + when: not percona__apt_config_package_installed + +# - include_role: +# name: remount-usr + +- name: Percona APT config package is installed from deb file + apt: + deb: "/root/{{ percona__apt_config_package_file }}" + state: present + register: percona__apt_config_deb + when: not percona__apt_config_package_installed + +- name: Percona APT config package is installed from repository + apt: + name: percona-release + state: latest + register: percona__apt_config_deb + when: percona__apt_config_package_installed + +- name: APT cache is up-to-date + apt: + update_cache: yes + when: percona__apt_config_deb | changed + +- include: xtrabackup.yml + when: percona__install_xtrabackup diff --git a/percona/tasks/xtrabackup.yml b/percona/tasks/xtrabackup.yml new file mode 100644 index 00000000..8fe6a7c5 --- /dev/null +++ b/percona/tasks/xtrabackup.yml @@ -0,0 +1,16 @@ +--- + +- name: Percona Tools is enabled + command: percona-release enable tools release + # changed_when: + # register: percona__release_enable_tools + +- name: APT cache is up-to-date + apt: + update_cache: yes + # when: percona__release_enable_tools | changed + +- name: Percona XtraBackup package is installed + apt: + name: "{{ percona__xtrabackup_package_name }}" + state: present