robertdebock.mysql

Rôle Ansible mysql

Installez et configurez mysql sur votre système.

GitHub GitLab Téléchargements Version
github gitlab downloads Version

Exemple de Playbook

Cet exemple est tiré de molecule/default/converge.yml et est testé à chaque envoi, demande de tirage et publication.

---
- name: Converger
  hosts: all
  become: true
  gather_facts: true

  roles:
    - role: robertdebock.mysql
      mysql_port: 3307
      mysql_databases:
        - name: my_db
          encoding: utf8
          collation: utf8_bin
      mysql_users:
        - name: my_user
          password: my_pass
          priv: "my_db.*:ALL"
          update_password: on_create

La machine doit être préparée. Dans CI, cela se fait en utilisant molecule/default/prepare.yml:

---
- name: Préparer
  hosts: all
  become: true
  gather_facts: false

  roles:
    - role: robertdebock.bootstrap

Voir aussi une explication complète et un exemple sur la façon d'utiliser ces rôles.

Variables de rôle

Les valeurs par défaut pour les variables sont définies dans defaults/main.yml:

---
# fichier par défaut pour mysql

# L'adresse à laquelle mysql doit se lier.
mysql_bind_address: "127.0.0.1"

# Le port à écouter.
mysql_port: 3306

# Le mot de passe à définir pour l'utilisateur root. Également stocké dans my.cnf.
mysql_root_password: "s3Cur31t4."

# La taille du buffer.
mysql_innodb_buffer_pool_size: 1G

# La capacité IO.
mysql_innodb_io_capacity: 4000

# Vous pouvez définir les options mysql(d) ici.
# Comme il s'agit d'une liste, il est difficile de la fusionner avec une autre liste.
# Cela signifie que vous devez redéfinir toute la liste et ajouter
# vos options.
mysql_configuration_options:
  - option: bind-address
    section: mysqld
    value: "{{ mysql_bind_address }}"
  - option: port
    section: mysqld
    value: "{{ mysql_port }}"
  - option: socket
    section: mysqld
    value: "{{ mysql_socket }}"
  - section: mysqld
    option: innodb_buffer_pool_size
    value: "{{ mysql_innodb_buffer_pool_size }}"
  - section: mysqld
    option: innodb_io_capacity
    value: "{{ mysql_innodb_io_capacity }}"
  - section: mysqld
    option: log-bin-trust-function-creators
    value: "1"

Exigences

État des rôles utilisés

Les rôles suivants sont utilisés pour préparer un système. Vous pouvez préparer votre système d'une autre manière.

Exigence GitHub GitLab
robertdebock.bootstrap Build Status GitHub Build Status GitLab

Contexte

Ce rôle fait partie de nombreux rôles compatibles. Consultez la documentation de ces rôles pour plus d'informations.

Voici un aperçu des rôles connexes : dépendances

Compatibilité

Ce rôle a été testé sur ces images de conteneurs:

conteneur tags
Debian bullseye
EL 9
Fedora tous
Ubuntu noble, jammy

La version minimum d'Ansible requise est 2.12, des tests ont été effectués sur :

  • La version précédente.
  • La version actuelle.
  • La version de développement.

Si vous trouvez des problèmes, veuillez les signaler sur GitHub.

Licence

Apache-2.0.

Informations sur l'auteur

robertdebock

Veuillez envisager de me sponsoriser.

À propos du projet

Install and configure mysql on your system.

Installer
ansible-galaxy install robertdebock.mysql
Licence
apache-2.0
Téléchargements
284.9k
Propriétaire
I know my way around (Linux) infrastructure, have a passion for automation, Docker, Ansible, Molecule and ci/cd.