%PDF- %PDF-
Direktori : /etc/ansible/roles/web/templates/ |
Current File : //etc/ansible/roles/web/templates/add_web_node_on_cluster.php.j2 |
<? // {{ ansible_managed }} {% if item['SiteStatus'] == 'finished' %} $_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; }; $webServer = "{{ inventory_hostname }}"; $webServerPort = "{{ nginx_to_apache_monitoring_port }}"; $groupId = 1; // return values $OK = array( 0, 'Ok' ); $ERR = array( 1, 'Error'); // configure session stored in DB $dbSession = COption::GetOptionString("security", "session", "N"); if($dbSession != 'Y') { if(!CModule::IncludeModule('security')) { echo "Not found security module for {{ item.SiteName }}"; return 0; }; COption::SetOptionString("security", "session", "Y"); CSecuritySession::Init(); CAgent::RemoveAgent("CSecuritySession::CleanUpAgent();", "security"); $res = CAgent::Add(array( "NAME"=>"CSecuritySession::CleanUpAgent();", "MODULE_ID"=>"security", "ACTIVE"=>"Y", "AGENT_INTERVAL"=>1800, "IS_PERIOD"=>"N", )); $returnResult = intval($res) > 0 ? $OK : $ERR; echo "Store session in db: ". $returnResult[1]; if(intval($res) <= 0) return $returnResult[0]; } //We need to know the group id $dbNode = new CClusterDBNode; $rsNodes = $dbNode->GetList( array(), array( "=ROLE_ID" => array("MAIN"), "=MASTER_ID" => false, "=STATUS" => "ONLINE", ) ); if($arNode = $rsNodes->Fetch()) { $groupId = $arNode["GROUP_ID"]; } else { $returnResult = $ERR; echo "Can't find db master: ". $returnResult[1]; return $returnResult[0]; } $arFields = array( "NAME" => $webServer, "HOST" => $webServer, "PORT" => $webServerPort, "STATUS_URL" => '/server-status', "DESCRIPTION" => $webServerPort, "GROUP_ID" => $groupId ); $ob = new CClusterWebnode; $rsData = $ob->GetList( array(), array( "HOST" => $webServer, "PORT" => $webServerPort ) ); if($arRes = $rsData->Fetch()) { $res = $ob->Update($arRes["ID"], $arFields); } else { $res = $ob->Add($arFields); } $returnResult = intval($res) > 0 ? $OK : $ERR; echo "Created cluster web node: ". $returnResult[1]; return $returnResult[0]; {% else %} return 0; {% endif %} ?>