Provisoning upgades
This commit is contained in:
@@ -4,3 +4,6 @@ apache_log/error.log
|
|||||||
writable
|
writable
|
||||||
writable*
|
writable*
|
||||||
.idea
|
.idea
|
||||||
|
ANSIBLE/parts
|
||||||
|
ANSIBLE/parts/*
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
[A000001_SERVER]
|
||||||
|
172.16.4.92
|
||||||
|
[A000002_SERVER]
|
||||||
|
172.16.4.92
|
||||||
|
[A000003_SERVER]
|
||||||
|
172.16.4.91
|
||||||
|
[A000004_SERVER]
|
||||||
|
172.16.4.91
|
||||||
|
[A000005_SERVER]
|
||||||
|
172.16.4.95
|
||||||
@@ -1,20 +1,13 @@
|
|||||||
---
|
---
|
||||||
- hosts: WHAT_HOST_IN_USE
|
- hosts: WHAT_HOST_IN_USE
|
||||||
vars_files:
|
|
||||||
- vars/main.yml
|
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: Set up docker-compose file
|
- name: Set up docker-compose file
|
||||||
template:
|
template:
|
||||||
src: "files/docker-compose.yml"
|
src: "WHAT_PART_FOLDER/docker-compose.yml"
|
||||||
dest: "/home/{{ admin_user }}/wordpress/"
|
dest: "DESTINATION_FOLDER"
|
||||||
|
|
||||||
- name: Set permission for docker daemon
|
|
||||||
file:
|
|
||||||
path: /var/run/docker.sock
|
|
||||||
mode: '0770'
|
|
||||||
|
|
||||||
- name: docker compose up
|
- name: docker compose up
|
||||||
shell:
|
shell:
|
||||||
chdir: "/home/{{ admin_user }}/wordpress/"
|
chdir: "DESTINATION_FOLDER/"
|
||||||
cmd: docker-compose up -d
|
cmd: docker-compose up -d
|
||||||
@@ -13,7 +13,7 @@ class Home extends BaseController
|
|||||||
{
|
{
|
||||||
$public_path = FCPATH;
|
$public_path = FCPATH;
|
||||||
$ansible_folder = str_replace("public/", "ANSIBLE", $public_path);
|
$ansible_folder = str_replace("public/", "ANSIBLE", $public_path);
|
||||||
$mysql = "SELECT id, internal_url,product_id,status FROM members_products";
|
$mysql = "SELECT id, uid, internal_url,product_id,status FROM members_products";
|
||||||
$query = $this->db->query($mysql);
|
$query = $this->db->query($mysql);
|
||||||
// $num = $query->num_rows();
|
// $num = $query->num_rows();
|
||||||
$provision_list= $query->getResult();
|
$provision_list= $query->getResult();
|
||||||
@@ -21,14 +21,37 @@ class Home extends BaseController
|
|||||||
foreach ($provision_list as $pr){
|
foreach ($provision_list as $pr){
|
||||||
|
|
||||||
$productId = $pr->product_id;
|
$productId = $pr->product_id;
|
||||||
|
$provisionUID = $pr->uid;
|
||||||
|
$ContainerName= $productId.str_pad( $pr->id, 10, "0", STR_PAD_LEFT);
|
||||||
|
$partFolder = $ansible_folder."/parts/".$provisionUID;
|
||||||
|
|
||||||
|
if (!dir($partFolder) ){
|
||||||
|
mkdir($partFolder, 0700);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// THIS PROVISONING COMPOSERS
|
||||||
|
$composer_template_path = $ansible_folder."/templates/composers/".$productId."/docker-compose.yml";
|
||||||
$prov_name = str_replace(".", "_", $pr->internal_url).".yml";
|
$prov_name = str_replace(".", "_", $pr->internal_url).".yml";
|
||||||
$template_file = $ansible_folder ."/templates/".$pr->product_id.".yml";
|
$template_file = $ansible_folder ."/templates/".$pr->product_id.".yml";
|
||||||
|
//Get the domposer template file
|
||||||
|
$composer_template_contents = file_get_contents($composer_template_path);
|
||||||
|
// Do the processing
|
||||||
|
$composer_template_contents = str_replace("WHAT_CONTAINER_NAME", $ContainerName, $composer_template_contents);
|
||||||
|
$destinationHomeFolder = "/home/chiefsoft/".$ContainerName;
|
||||||
|
$composer_template_contents = str_replace("DESTINATION_FOLDER", $destinationHomeFolder, $composer_template_contents);
|
||||||
|
|
||||||
|
//Save to the specific path
|
||||||
|
$destination_composer_path = $ansible_folder."/parts/".$provisionUID."/docker-compose.yml";
|
||||||
|
$composerFile = fopen( $destination_composer_path, "w") or die("Unable to open file!");
|
||||||
|
fwrite($composerFile, $composer_template_contents);
|
||||||
|
fclose($composerFile);
|
||||||
|
|
||||||
// GET THE TEMPLATE FOR THIS PROVISIONING
|
// GET THE TEMPLATE FOR THIS PROVISIONING
|
||||||
$template_content = file_get_contents($template_file);
|
$template_content = file_get_contents($template_file);
|
||||||
$template_content_processed = str_replace("WHAT_HOST_IN_USE", $productId."_SERVER", $template_content);;
|
$template_content_processed = str_replace("WHAT_HOST_IN_USE", $productId."_SERVER", $template_content);
|
||||||
|
$template_content_processed = str_replace("WHAT_PART_FOLDER", $partFolder, $template_content_processed);
|
||||||
|
$template_content_processed = str_replace("DESTINATION_FOLDER", $destinationHomeFolder, $template_content_processed);
|
||||||
// CREATE PROVISOINING FILE
|
// CREATE PROVISOINING FILE
|
||||||
$myfile = fopen( $ansible_folder ."/".$prov_name, "w") or die("Unable to open file!");
|
$myfile = fopen( $ansible_folder ."/".$prov_name, "w") or die("Unable to open file!");
|
||||||
fwrite($myfile, $template_content_processed);
|
fwrite($myfile, $template_content_processed);
|
||||||
|
|||||||
Reference in New Issue
Block a user