prise en compte mysql + script init ha

This commit is contained in:
Emmanuel Garette 2019-02-08 17:43:22 +01:00
parent d3948bcd06
commit 227f568aab
4 changed files with 40 additions and 26 deletions

View File

@ -46,20 +46,20 @@
</variable>
<!-- Base de donnée -->
<variable name="oneDataBaseType" description="Moteur de base de données a utiliser" type="string" mode="expert">
<variable name="one_database_type" description="Moteur de base de données a utiliser" type="string" mode="expert">
<value>sqlite</value>
</variable>
<variable name="oneDataBaseHost" description="Addresse du serveur de base de données (mySQL uniquement)" mandatory="True" mode="expert"/>
<variable name="oneDataBasePort" description="Port d'écoute du serveur de base de données" mode="expert" type="number" mandatory="True">
<variable name="one_database_host" description="Adresse du serveur de base de données (mySQL uniquement)" mandatory="True" mode="expert"/>
<variable name="one_database_port" description="Port d'écoute du serveur de base de données" mode="expert" type="number" mandatory="True">
<value>3306</value>
</variable>
<variable name="oneDataBaseName" description="Nom de la base de données" type="string" mode="expert" mandatory="True">
<variable name="one_database_name" description="Nom de la base de données" type="string" mandatory="True">
<value>onedb</value>
</variable>
<variable name="oneDataBaseUser" description="Utilisateur pour se connecter à la base de données" mode="expert" type="string" mandatory="True">
<variable name="one_database_user" description="Utilisateur pour se connecter à la base de données" type="string" mandatory="True">
<value>one</value>
</variable>
<variable name="oneDataBasePass" description="Mot de passe pour se connecter à la base de données" mode="expert" type="string" mandatory="True"/>
<variable name="one_database_pass" description="Mot de passe pour se connecter à la base de données" type="string" mandatory="True"/>
<!-- VNETS -->
<variable name='vnet_pilote' type='string' description='Pilote utilisé pour le réseau virtuel' hidden='True' />
@ -139,7 +139,7 @@
</family>
<separators>
<separator name='activer_xmlrpc_port_sunstone'>Configuration du service XML-RPC</separator>
<separator name="oneDataBaseType">Configuration de la base de données</separator>
<separator name="one_database_type">Configuration de la base de données</separator>
<separator name='vnet_pilote'>Configuration des réseaux de l'orchestrateur</separator>
<separator name='one_ds_system_prefix'>Configuration de l'orchestrateur</separator>
<separator name='activer_multinode'>Configuration des nœuds de virtualisation</separator>
@ -155,7 +155,7 @@
<param type="eole" name="condition_1">vnet_pilote</param>
</auto>
<check name="valid_enum" target="oneDataBaseType">
<check name="valid_enum" target="one_database_type">
<param>['sqlite','mysql']</param>
</check>
@ -194,13 +194,13 @@
<target type='variable'>arp_cache_poisoning</target>
</condition>
<condition name="disabled_if_in" source="oneDataBaseType">
<condition name="disabled_if_in" source="one_database_type">
<param>sqlite</param>
<target type="variable">oneDataBaseHost</target>
<target type="variable">oneDataBasePort</target>
<target type="variable">oneDataBaseName</target>
<target type="variable">oneDataBaseUser</target>
<target type="variable">oneDataBasePass</target>
<target type="variable">one_database_host</target>
<target type="variable">one_database_port</target>
<target type="variable">one_database_name</target>
<target type="variable">one_database_user</target>
<target type="variable">one_database_pass</target>
</condition>
<condition name='disabled_if_in' source='activer_multinode'>

View File

@ -8,7 +8,7 @@
<value>non</value>
</variable>
</family>
<family name='ONE HA' icon='cloud' mode='expert'>
<family name='Haute disponibilité' icon='cloud'>
<variable name="one_ha_role" description="Rôle initial dans la grappe OpenNebula" type="string" mandatory="True"/>
<variable name="one_host_id" description="Identififiant unique de l'hôte dans la grappe" type="number" mandatory="True"/>
<variable name="one_vip" description="Adresse IP de la VIP OpenNebula" type="ip" mandatory="True"/>
@ -27,17 +27,17 @@
<condition name='disabled_if_in' source='enable_one_ha'>
<param>non</param>
<target type='family'>ONE HA</target>
<target type='family'>Haute disponibilité</target>
</condition>
</constraints>
<help>
<variable name='enable_one_ha'>Active la possibilité d'intégrer Hâpy dans une grappe de haute disponibilité OpenNebula</variable>
<family name='ONE HA'>Configuration du comportement du noeud dans la grappe</family>
<family name='Haute disponibilité'>Configuration du comportement du noeud dans la grappe</family>
<variable name="one_ha_role">Rôle initial du noeud dans la grappe, permet de déterminer comment le serveur commence sa vie dans la grappe</variable>
<variable name="one_host_id">Identifiant unique du serveur dans la grappe, cet identifiant est un entier (0,1,2,3...)</variable>
<variable name="one_vip">Addresse IP Virtuelle (VIP) utilisée pour joindre le "Leader" de la grappe, les clients utiliseront cette IP pour contacter la grappe</variable>
<variable name="one_vip">Adresse IP virtuelle (VIP) utilisée pour joindre le "Leader" de la grappe, les clients utiliseront cette IP pour contacter la grappe</variable>
<variable name="one_vip_mask">Masque de sous réseau du réseau de la VIP au format CIDR (ex: 24 pour 255.255.255.0)</variable>
</help>
</creole>

12
scripts/one_ha_init Executable file
View File

@ -0,0 +1,12 @@
SERVER=$(CreoleGet one_master)
IP=$(CreoleGet adresse_ip_eth0)
if [ $(CreoleGet one_database_type) = "mysql" && $(CreoleGet one_ha_role) = "leader" ]; then
HOST=$(CreoleGet one_database_host)
DB=$(CreoleGet one_database_name)
USER=$(CreoleGet one_database_user)
PASS=$(CreoleGet one_database_pass)
onedb sqlite2mysql -s /var/lib/one/one.db -u $USER -p $PASS -d $DB -S $HOST
systemctl stop opennebula
systemctl start opennebula
fi
onezone server-add 0 --name $SERVER --rpc http://$IP:2633/RPC2

View File

@ -80,16 +80,18 @@ PORT = 2633
LISTEN_ADDRESS = "127.0.0.1"
%if %%one_database_type == "sqlite"
DB = [ BACKEND = "sqlite" ]
%else
# Sample configuration for MySQL
# DB = [ BACKEND = "mysql",
# SERVER = "localhost",
# PORT = 0,
# USER = "oneadmin",
# PASSWD = "oneadmin",
# DB_NAME = "opennebula",
# CONNECTIONS = 50 ]
DB = [ BACKEND = "mysql",
SERVER = "%%one_database_host",
PORT = %%one_database_port,
USER = "%%one_database_user",
PASSWD = "%%one_database_pass",
DB_NAME = "%%one_database_name",
CONNECTIONS = 50 ]
%end if
VNC_PORTS = [
START = 5900