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/release', 'Provision::releaseProvision');
|
||||
$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(){
|
||||
$rsyncPass = "May12002!x";
|
||||
$rsyncPass = "******noNEDD****";
|
||||
$remote_composer_path = "chiefsoft@10.0.0.32:/home/chiefsoft/MermsProvision/ANSIBLE/parts/";
|
||||
$partMachineLocal = "/home/chiefsoft/MermsProvision/ANSIBLE/parts/";
|
||||
$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