merged haproxy code in
This commit is contained in:
@@ -11,5 +11,6 @@ $routes->get('/provision/prepare', 'Provision::prepareProvision');
|
|||||||
$routes->get('/provision/update', 'Provision::updateProvision');
|
$routes->get('/provision/update', 'Provision::updateProvision');
|
||||||
$routes->get('/provision/release', 'Provision::releaseProvision');
|
$routes->get('/provision/release', 'Provision::releaseProvision');
|
||||||
$routes->get('/provision/target', 'Provision::directProvision');
|
$routes->get('/provision/target', 'Provision::directProvision');
|
||||||
$routes->get('/provision/demo', 'Provision::demo');
|
//$routes->get('/provision/demo', 'Provision::demo');
|
||||||
|
$routes->get('/provision/haproxy', 'Provision::haproxy');
|
||||||
|
|
||||||
|
|||||||
@@ -313,7 +313,7 @@ class Provision extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function releaseProvision(){
|
public function releaseProvision(){
|
||||||
$rsyncPass = "May12002!x";
|
$rsyncPass = "******noNEDD****";
|
||||||
$remote_composer_path = "chiefsoft@10.0.0.32:/home/chiefsoft/MermsProvision/ANSIBLE/parts/";
|
$remote_composer_path = "chiefsoft@10.0.0.32:/home/chiefsoft/MermsProvision/ANSIBLE/parts/";
|
||||||
$partMachineLocal = "/home/chiefsoft/MermsProvision/ANSIBLE/parts/";
|
$partMachineLocal = "/home/chiefsoft/MermsProvision/ANSIBLE/parts/";
|
||||||
$ansibleToken = $this->ansibleLogin();
|
$ansibleToken = $this->ansibleLogin();
|
||||||
@@ -503,4 +503,106 @@ class Provision extends BaseController
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function haproxy() {
|
||||||
|
$base_url = 'http://172.16.4.99:5555';
|
||||||
|
$username = 'admin';
|
||||||
|
$password = 'Hapr0xy001';
|
||||||
|
|
||||||
|
list($status_code1, $cfgver) = $this->getHaProxyCfgVer($base_url,$username,$password);
|
||||||
|
$cfgver0 = trim($cfgver);
|
||||||
|
|
||||||
|
// Add backend
|
||||||
|
/*
|
||||||
|
# Add backend
|
||||||
|
# https://www.haproxy.com/documentation/dataplaneapi/community/?v=v3#post-/services/haproxy/configuration/backends
|
||||||
|
curl -XPOST --user admin:Hapr0xy001 \
|
||||||
|
-H 'Content-Type: application/json' -H 'Accept: application/json' \
|
||||||
|
-d '{
|
||||||
|
"name": "backend'$CFGVER'",
|
||||||
|
"mode": "http",
|
||||||
|
"http_connection_mode": "httpclose",
|
||||||
|
"forwardfor": {
|
||||||
|
"enabled": "enabled"
|
||||||
|
},
|
||||||
|
"compression": {
|
||||||
|
"algorithms": ["gzip"],
|
||||||
|
"types": ["text/html", "text/plain", "text/css", "text/javascript"]
|
||||||
|
}
|
||||||
|
}' \
|
||||||
|
"http://172.16.4.99:5555/v3/services/haproxy/configuration/backends?version=$CFGVER" > backend.txt
|
||||||
|
*/
|
||||||
|
$data = [
|
||||||
|
"name" => "backend".$cfgver0,
|
||||||
|
"mode" => "http",
|
||||||
|
"http_connection_mode" => "httpclose",
|
||||||
|
"forwardfor" => [
|
||||||
|
"enabled" => "enabled"
|
||||||
|
],
|
||||||
|
"compression" => [
|
||||||
|
"algorithms" => ["gzip"],
|
||||||
|
"types" => ["text/html", "text/plain", "text/css", "text/javascript"]
|
||||||
|
]
|
||||||
|
];
|
||||||
|
$uri = '/v3/services/haproxy/configuration/backends?version=' . $cfgver0;
|
||||||
|
list($status_code2, $result) = $this->getHaProxyPost($base_url,$username,$password,$uri,$data);
|
||||||
|
|
||||||
|
list($status_code3, $cfgver) = $this->getHaProxyCfgVer($base_url,$username,$password);
|
||||||
|
$cfgver1 = trim($cfgver);
|
||||||
|
|
||||||
|
return "<pre>CFGVER=$cfgver0\n($status_code2) $result\nCFGVER=$cfgver1</pre>";
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getHaproxyPost($base_url,$username,$password,$uri,$data) {
|
||||||
|
$url = $base_url . $uri;
|
||||||
|
$payload = json_encode($data);
|
||||||
|
$headers = array(
|
||||||
|
'Content-Type:application/json',
|
||||||
|
'Authorization: Basic '. base64_encode("$username:$password") // <---
|
||||||
|
);
|
||||||
|
$ch = curl_init();
|
||||||
|
curl_setopt($ch, CURLOPT_URL, $url);
|
||||||
|
curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
|
||||||
|
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
|
||||||
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
|
||||||
|
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||||||
|
// Debug
|
||||||
|
//curl_setopt($ch, CURLOPT_VERBOSE, true);
|
||||||
|
//$streamVerboseHandle = fopen('php://temp', 'w+');
|
||||||
|
//curl_setopt($ch, CURLOPT_STDERR, $streamVerboseHandle);
|
||||||
|
// End Debug
|
||||||
|
$result = curl_exec ($ch);
|
||||||
|
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //get status code
|
||||||
|
if ($result === FALSE) {
|
||||||
|
$result = sprintf("cUrl error (#%d): %s<br>\n", curl_errno($ch), htmlspecialchars(curl_error($ch)));
|
||||||
|
}
|
||||||
|
// Debug
|
||||||
|
//rewind($streamVerboseHandle);
|
||||||
|
//$verboseLog = stream_get_contents($streamVerboseHandle);
|
||||||
|
//$result .= "\ncUrl verbose information:\n<pre>" . htmlspecialchars($verboseLog) . "</pre>\n";
|
||||||
|
//$result .= "<pre>$payload</pre>\n";
|
||||||
|
// End Debug
|
||||||
|
curl_close ($ch);
|
||||||
|
return [$status_code, $result];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getHaproxyGet($base_url,$username,$password,$uri) {
|
||||||
|
$url = $base_url . $uri;
|
||||||
|
$ch = curl_init();
|
||||||
|
curl_setopt($ch, CURLOPT_URL,$url);
|
||||||
|
curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
|
||||||
|
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
|
||||||
|
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
|
||||||
|
$result = curl_exec ($ch);
|
||||||
|
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //get status code
|
||||||
|
curl_close ($ch);
|
||||||
|
return [$status_code, $result];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getHaproxyCfgVer($base_url,$username,$password) {
|
||||||
|
return $this->getHaproxyGet($base_url,$username,$password,'/v3/services/haproxy/configuration/version');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user