From a7b8be6535846034b9509e539f9bc310b5fc2287 Mon Sep 17 00:00:00 2001 From: Souhair Date: Sat, 3 Jun 2023 12:00:18 +0300 Subject: [PATCH 1/3] Create Report.md --- Report.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Report.md diff --git a/Report.md b/Report.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Report.md @@ -0,0 +1 @@ + From 659c7d7ee9652c6e3e884c377821cbbe6aa73ed9 Mon Sep 17 00:00:00 2001 From: Souhair Date: Sat, 3 Jun 2023 12:05:30 +0300 Subject: [PATCH 2/3] Update Report.md --- Report.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Report.md b/Report.md index 8b13789..586aeb4 100644 --- a/Report.md +++ b/Report.md @@ -1 +1,20 @@ +As a final application, I choose a container with todo and a database from the docker tutorial +- create n=2 virtual machines, one for todo app, the other for mysql DB + +## Terraform + - openstack provider + - networks + - subnets + - Create public ssh key and attach to VM + - Create bootable disc with ubuntu 20.04 + - Create flavor 1CPU 2 gb RAM, Disk 10gb per vm (basic hdd) + - fix the public ip address for each VM + - the output + - an inventory.ini file for ansible, which describes the IP addresses of the created VMs + - Use terraform generated inventory file + - playbooks for deploying the application in docker-compose files + +## Outcome + - running terraform apply the infrastructure and inventory.ini is generated + - running ansible-playbook your-playbook.yml the application is installed on the infrastructure automatically. From 479a4ef9d0f55cca168e245058cffb37bddf4b2e Mon Sep 17 00:00:00 2001 From: Souhair Date: Sat, 3 Jun 2023 19:14:47 +0300 Subject: [PATCH 3/3] Update Report.md --- Report.md | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 63 insertions(+), 3 deletions(-) diff --git a/Report.md b/Report.md index 586aeb4..c649a08 100644 --- a/Report.md +++ b/Report.md @@ -1,20 +1,80 @@ - As a final application, I choose a container with todo and a database from the docker tutorial - create n=2 virtual machines, one for todo app, the other for mysql DB ## Terraform - openstack provider +![1- provider](https://github.com/souhair/CloudPractice/assets/25878224/bffa9a29-e33c-4737-959a-e671840d9521) + + - servers + ![servers](https://github.com/souhair/CloudPractice/assets/25878224/7e05e1ea-50ad-40eb-a45a-cfe7ad09e0a2) + +![server2](https://github.com/souhair/CloudPractice/assets/25878224/43600f4f-9025-4cba-b2d7-ef194e7a15af) + - networks +![2 networks](https://github.com/souhair/CloudPractice/assets/25878224/7e01da12-0e6d-4307-ba14-46dc05ab7bca) + +![network](https://github.com/souhair/CloudPractice/assets/25878224/1edc7afd-3c38-48f8-a2d9-ff610556d6c6) + - subnets +![3 subnets](https://github.com/souhair/CloudPractice/assets/25878224/3db75688-f0ea-49b8-b66b-9696dad61f67) + + - Create roures +![22 create route](https://github.com/souhair/CloudPractice/assets/25878224/ffbb4ad1-818f-4495-8f36-bbc0eefcb629) +![22 route](https://github.com/souhair/CloudPractice/assets/25878224/3f006d8b-bc33-4773-b6d8-14ff75bc546b) - Create public ssh key and attach to VM + ![4 ssh](https://github.com/souhair/CloudPractice/assets/25878224/4ffc9328-e18b-4194-9e11-f6d51e6650df) + - Create bootable disc with ubuntu 20.04 - - Create flavor 1CPU 2 gb RAM, Disk 10gb per vm (basic hdd) - - fix the public ip address for each VM + ![server1](https://github.com/souhair/CloudPractice/assets/25878224/0fce00a7-9388-403a-95b6-2d9ae0d1530a) + + ![server2](https://github.com/souhair/CloudPractice/assets/25878224/7d71b3d2-8837-4c3c-a11c-99e840808dc1) + + - Create flavor 1CPU 1 gb RAM, Disk 5gb per vm (basic hdd) + +![server1-1](https://github.com/souhair/CloudPractice/assets/25878224/f6c2bb87-04b0-43f2-814f-940d679dfcfe) + +![server1](https://github.com/souhair/CloudPractice/assets/25878224/659d4f84-7893-46fa-9c95-a6db21909646) + + - fix the public ip address for each VM +![public ip ](https://github.com/souhair/CloudPractice/assets/25878224/5b743dd2-5f99-4f5c-a2c9-349fa9d66771) + + - the output +![8 output](https://github.com/souhair/CloudPractice/assets/25878224/8cf9a28c-6300-4481-b99d-1c80b191f6de) +after running terraform apply: +![terraform apply output 1](https://github.com/souhair/CloudPractice/assets/25878224/ed37d6b5-8266-4380-aaee-6d7667364bf5) + +for webapp VM: + +![vm 1ssh 1](https://github.com/souhair/CloudPractice/assets/25878224/e5390c56-5a05-457c-a2c1-45ba334d02ad) + +![ip a 1](https://github.com/souhair/CloudPractice/assets/25878224/514306e9-7381-4070-8c00-cf40db35cc20) +for DB VM: + +![vm 2ssh 2](https://github.com/souhair/CloudPractice/assets/25878224/883fa548-3cc3-4c35-a4b2-d6bd4ecb421a) + +![ip a 2](https://github.com/souhair/CloudPractice/assets/25878224/b8d62aee-c488-4468-8a72-26fcfcb0d71a) + - an inventory.ini file for ansible, which describes the IP addresses of the created VMs +![9 inventory file](https://github.com/souhair/CloudPractice/assets/25878224/2732cfd4-6c37-4fe8-bad9-ce7f586ac882) +![91 inventory file](https://github.com/souhair/CloudPractice/assets/25878224/938fa7b3-9743-412a-9ffd-59d985a9c1b0) + - Use terraform generated inventory file +![terraform init](https://github.com/souhair/CloudPractice/assets/25878224/24d35d6f-459c-446f-a7ee-ce76ce5b7c7b) +![terraform plan1](https://github.com/souhair/CloudPractice/assets/25878224/72ae7f59-c9df-47f6-9de0-1ec4acb7498c) +![terraform plan2](https://github.com/souhair/CloudPractice/assets/25878224/c3021b23-0c67-46bf-8455-b45af83a74ee) + - playbooks for deploying the application in docker-compose files +![11 playbook](https://github.com/souhair/CloudPractice/assets/25878224/55924047-9b60-4be2-9cfa-906bbf31a39f) +![playbook](https://github.com/souhair/CloudPractice/assets/25878224/7a4ec214-6902-409a-a561-0f55ab8c8531) + +![playbook 1](https://github.com/souhair/CloudPractice/assets/25878224/907ef6e3-2248-470a-90e6-ba3e52641a07) +![playbook 2](https://github.com/souhair/CloudPractice/assets/25878224/14ec8d30-d24e-42bf-ab48-60e57228cd71) ## Outcome - running terraform apply the infrastructure and inventory.ini is generated +![terraform apply](https://github.com/souhair/CloudPractice/assets/25878224/6acc5ac3-14a7-4c2b-9b23-5885cc77b825) +![terraform apply output 1](https://github.com/souhair/CloudPractice/assets/25878224/fee2fc31-c838-4d25-a803-61389486c33c) + - running ansible-playbook your-playbook.yml the application is installed on the infrastructure automatically. +![to do ](https://github.com/souhair/CloudPractice/assets/25878224/65569a8b-dc71-4c76-8cd2-eb7f590ea52e)