%PDF- %PDF-
Direktori : /etc/ansible/roles/mysql/templates/ |
Current File : //etc/ansible/roles/mysql/templates/mysql_create_slave.php.j2 |
{% set cluster_password_esc = cluster_password | regex_replace('([\'\\\\])','\\\\\\1') -%} <? // {{ ansible_managed }} $_SERVER["DOCUMENT_ROOT"] = '{{ item.DocumentRoot }}'; $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"]; define("NO_KEEP_STATISTIC", true); define("NOT_CHECK_PERMISSIONS",true); define('BX_NO_ACCELERATOR_RESET', true); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); if(!CModule::IncludeModule('cluster')) { echo "Not found cluster module for {{ item.SiteName }}"; return 0; }; // register variables for node $dbHost = "{{ inventory_hostname }}"; $dbLogin = "{{ cluster_login }}"; $dbPassword = '{{ cluster_password_esc }}'; $dbName = "{{ item.DBName }}"; $masterHost = "{{ master_server }}"; $masterId = "{{ master_server_id|default('1') }}"; $groupId = "1"; $slaveRole = "SLAVE"; // Y|N $slaveActive = "{{ mysql_active|default('Y') }}"; // return values $OK = array( 0, 'Ok' ); $ERR = array( 1, 'Error'); $dbNode = new CClusterDBNode; $rsNodes = $dbNode->GetList( array(), array( "=ROLE_ID" => array("MAIN"), "=MASTER_ID" => false, "=STATUS" => "ONLINE", ) ); if($arNode = $rsNodes->Fetch()) { $masterId = $arNode["ID"]; $groupId = $arNode["GROUP_ID"]; } else { $returnResult = $ERR; echo "Can't find db master: ". $returnResult[1]; return $returnResult[0]; } // test if node exist => search by DBHost $rsNodes = CClusterDBNode::GetList(array(), array("=NAME" => $dbHost)); while($arNode = $rsNodes->Fetch()) { CClusterDBNode::Delete($arNode["ID"]); } $nodeId = $dbNode->Add(array( "ACTIVE" => $slaveActive, "ROLE_ID" => $slaveRole, "NAME" => $dbHost, "DESCRIPTION" => false, "DB_HOST" => $dbHost, "DB_NAME" => $dbName, "DB_LOGIN" => $dbLogin, "DB_PASSWORD" => $dbPassword, "MASTER_ID" => $masterId, "MASTER_HOST" => $masterHost, "MASTER_PORT" => 3306, "SERVER_ID" => false, "STATUS" => "ONLINE", "SELECTABLE" => "Y", "WEIGHT" => 100, "GROUP_ID" => $groupId )); $returnResult = intval($nodeId)>0 ? $OK : $ERR; echo "Create claster slave db node: ". $returnResult[1]; return $returnResult[0]; ?>