Adding eole dictionnary

This commit is contained in:
Philippe Caseiro 2018-04-10 16:15:28 +02:00
parent 0fcf4678e5
commit 9ab3cffb63
2 changed files with 184 additions and 4 deletions

122
README.md
View File

@ -3,3 +3,125 @@
Début des travaux pour l'utilisation de mariadb Début des travaux pour l'utilisation de mariadb
dans Eole avec des fonctionalitées avancées du type dans Eole avec des fonctionalitées avancées du type
mise en clustter mise en clustter
# How-to for Eole 2.6.2
## Sources
* https://mariadb.com/kb/en/library/getting-started-with-mariadb-galera-cluster/
* https://mariadb.com/kb/en/library/installing-mariadb-deb-files/#installing-mariadb-galera-cluster-with-apt-get
* https://downloads.mariadb.org/mariadb/repositories/#mirror=ovh&distro=Ubuntu&distro_release=xenial--ubuntu_xenial&version=10.2
* http://galeracluster.com/documentation-webpages/?id=galera_parameters_0.8
* https://mariadb.com/kb/en/library/mariadb-galera-cluster-known-limitations/
## Requirements
* 2 eolebase 2.6.2 servers
## Adding MariaDB (Galera) cluster repository (on each server)
GenConfig (Mode Expert) -> Dépôt tiers :
* Libellé du dépôt : MariaDB
* Déclaration du dépôt : deb [arch=amd64] http://mariadb.mirrors.ovh.net/MariaDB/repo/10.2/ubuntu xenial main
* Méthode de récupération de la clé publique du dépôt : serveur de clés
* URL du serveur de clés : hkp://keyserver.ubuntu.com:80
* Empreinte de la clé : 0xF1656F24C74CD1D8
## Installing MariaDB software on the First Node aka "Node1"
* Query-Auto
* apt install mariadb-server
### Secure MariaDB installation
* mysql_secure_installation
### Configure the Master
* vim /etc/mysql/conf.d/galera.cnf
```
[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="eole_cluster"
wsrep_cluster_address="gcomm://<IP_NODE1>,<IP_NODE2>"
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address="<IP_NODE1>"
wsrep_node_name="Node1"
```
### Open Firewall ports
* 3306/tcp
* 4444/tcp
* 4567/tcp
* 4568/tcp
* 4567/udp
### Bootstraping the new cluster
* systemctl stop mariadb
* galera_new_cluster
### Check cluster size
* mysql -u root -p -e "show status like 'wsrep_cluster_size'"
```
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 1 |
+--------------------+-------+
```
## Installing MariaDB software in the Second node aka "Node2"
* Query-Auto
* apt install mariadb-server
### Secure MariaDB installation
* mysql_secure_installation
### Configure the Master
* vim /etc/mysql/conf.d/galera.cnf
```
[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="eole_cluster"
wsrep_cluster_address="gcomm://<IP_NODE1>,<IP_NODE2>"
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address="<IP_NODE2>"
wsrep_node_name="Node2"
```
### Open Firewall ports
* 3306/tcp
* 4444/tcp
* 4567/tcp
* 4568/tcp
* 4567/udp
### Restart MariaDB
* systemctl restart mysql
### Check Cluster Size
* mysql -u root -p -e "show status like 'wsrep_cluster_size'"
```
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 2 |
+--------------------+-------+
```

View File

@ -1,7 +1,36 @@
<creole> <creole>
<files/> <files>
<file filelist='dbCluster' name='/etc/mysql/conf.d/galera.cnf' rm='True' mkdir='True'>
<service_access service='mariadb'>
<port service_accesslist='mariadb' protocol='tcp'>3306</port>
<tcpwrapper service_accesslist='mariadb'>mariadb</tcpwrapper>
</service_access>
<service_access service='galera'>
<port service_accesslist='dbCluster' protocol='tcp'>4444</port>
<port service_accesslist='dbCluster' protocol='tcp'>4567</port>
<port service_accesslist='dbCluster' protocol='tcp'>4568</port>
<port service_accesslist='dbCluster' protocol='udp'>4567</port>
<tcpwrapper service_accesslist='mariadb'>mariadb</tcpwrapper>
</service_access>
<service_restriction service='mariadb'>
<ip interface='ifMariaDBLimit' interface_type="SymLinkOption" netmask='maskMariaDBLimit' netmask_type='SymLinkOption' ip_type='SymLinkOption'>ipMariaDBLimit</ip>
</service_restriction>
<service_restriction service='galera'>
<ip interface='ifDBCluster' interface_type="SymLinkOption" netmask='maskDBCluster' netmask_type='SymLinkOption' ip_type='SymLinkOption'>ipDBCluster</ip>
</service_restriction>
</files>
<variables> <variables>
<family name="Services">
<variable namle="dbEnable" type='oui/non' description='Activer le serveur de base de données MariaDB'>
<value>non</non>
</variable>
</family>
<family name="DataBase"> <family name="DataBase">
<variable name='dbEnableClustter' type='oui/non' description="Activer la mise en grappe MariaDB Galera ?">
<value>non</value>
</variable>
<variable name="dbCreateFixAdmin" type='oui/non' description="Créer des comptes admin mysql avec un mot de passe fixe"/> <variable name="dbCreateFixAdmin" type='oui/non' description="Créer des comptes admin mysql avec un mot de passe fixe"/>
<variable name="accName" type='string' description="Nom du compte" multi="True"/> <variable name="accName" type='string' description="Nom du compte" multi="True"/>
<variable name="accLimits" type='string' description="Limiter les accès des comptes"> <variable name="accLimits" type='string' description="Limiter les accès des comptes">
@ -9,30 +38,59 @@
</variable> </variable>
<variable name="accLimitTarget" type="string" description="Restriction d'accès à ces IP/noms d'hôtes (liste séparateur séparateur ',')" /> <variable name="accLimitTarget" type="string" description="Restriction d'accès à ces IP/noms d'hôtes (liste séparateur séparateur ',')" />
</family> </family>
<family name="Database Cluster">
<variable name='ifDBCluster' type='string' description="Interface réseau dédiée à la grappe BDD"/>
<variable name='dbClusterMember' type='String' description="Membre de la grappe BDD"/>
<variable name='dbClusterMemberIP' type='ip' description="Adresse IP"/>
</family>
<separators> <separators>
<separator name='dbCreateFixAdmin'>Comptes d'administration supplémentaires</separator> <separator name='dbCreateFixAdmin'>Comptes d'administration supplémentaires</separator>
</separators> </separators>
</variables> </variables>
<constraints> <constraints>
<check name='valid_enum' target='ifDBCluster'>
<param>['eth0', 'eth1', 'eth2', 'eth3', 'eth4']</param>
</check>
<group master='dbClusterMember'>
<slave>dbClusterMemeberIP</slave>
</group>
<check name='valid_enum' target='accLimits'> <check name='valid_enum' target='accLimits'>
<param>['Default','Custom']</param> <param>['Default','Custom']</param>
</check> </check>
<group master='accName'> <group master='accName'>
<slave>accLimits</slave> <slave>accLimits</slave>
<slave>accLimitTarget</slave> <slave>accLimitTarget</slave>
</group> </group>
<fill name='calc_multi_condition' target='accLimitTarget'> <fill name='calc_multi_condition' target='accLimitTarget'>
<param>Default</param> <param>Default</param>
<param type='eole' name='condition_1'>accLimits</param> <param type='eole' name='condition_1'>accLimits</param>
<param name='default_match'>Default</param> <param name='default_match'>Default</param>
<param name='mismatch'>""</param> <param name='mismatch'>""</param>
</fill> </fill>
<condition name='disabled_if_in' source="dbCreateFixAdmin"> <condition name='disabled_if_in' source="dbCreateFixAdmin">
<param>non</param> <param>non</param>
<target type='variable'>accName</target> <target type='variable'>accName</target>
<target type='variable'>accLimits</target> <target type='variable'>accLimits</target>
<target type='variable'>accLimitTarget</target> <target type='variable'>accLimitTarget</target>
</condition> </condition>
<condition name='disabled_if_in' source="dbEnableCluster">
<param>non</param>
<target type='family'>Database Cluster</target>
<target type='service_accesslist'>dbCluster</target>
</condition>
<condition name='disabled_if_in' source="dbEnable">
<param>non</param>
<target type='family'>Database Cluster</target>
<target type='family'>Database</target>
<target type='service_accesslist'>dbCluster</target>
</condition>
</constraints> </constraints>
<help/> <help/>
</creole> </creole>