diff --git a/REPORT.md b/REPORT.md new file mode 100644 index 0000000..fe01a67 --- /dev/null +++ b/REPORT.md @@ -0,0 +1,67 @@ +# Отчет + +Задание - развернуть две виртуальные машины с помощью Terraform. С помощью Ansible на одной запустить докер образ приложения todo-list из туториала к докеру, на второй запустить базу данных для этого приложения. + +## Использование + +```bash +cd preemptible_server +terraform init +terraform apply +cd ../ansible +ansible-playbook playbook.yml +``` + +## Скриншоты + - openstack provider + + ![alt text](assets/image.png) + + - servers + ![alt text](assets/image-1.png) + +![alt text](assets/image-2.png) + + - networks + +![alt text](assets/image-4.png) + + ![alt text](assets/image-3.png) + + ![alt text](assets/image-5.png) + + - Задание ключа для доступа к ВМ + +![alt text](assets/image-6.png) + + - Create flavor 1CPU 1 gb RAM, Disk 5gb per vm (basic hdd) + +![alt text](assets/image-7.png) + + - the output + + ![alt text](assets/image-9.png) + +- `inventory.tmpl` + +![alt text](assets/image-10.png) + +after running terraform apply: + +![alt text](assets/image-8.png) + + - an inventory.ini file for ansible, which describes the IP addresses of the created VMs + + ![alt text](assets/image-11.png) + + - playbooks for deploying the application in docker-compose files + + ![alt text](assets/image-12.png) + +![alt text](assets/image-13.png) + +## Результат + +При переходе по адресу `http://5.188.81.9/` мы попадаем на страницу с приложением todo-list + +![alt text](assets/image-14.png) \ No newline at end of file diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index d02db45..3703f71 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -1,2 +1,2 @@ ansible_user: root -ansible_ssh_private_key_file: ~/.ssh/id_rsa # you can change path to your private key \ No newline at end of file +ansible_ssh_private_key_file: ~/.ssh/id_ed25519 # you can change path to your private key \ No newline at end of file diff --git a/ansible/inventory.ini b/ansible/inventory.ini new file mode 100755 index 0000000..6fa4760 --- /dev/null +++ b/ansible/inventory.ini @@ -0,0 +1,4 @@ +[webapp] +5.188.81.9 private_database_ip=192.168.0.38 +[database] +5.188.80.154 \ No newline at end of file diff --git a/assets/image-1.png b/assets/image-1.png new file mode 100644 index 0000000..7440cad Binary files /dev/null and b/assets/image-1.png differ diff --git a/assets/image-10.png b/assets/image-10.png new file mode 100644 index 0000000..68765d8 Binary files /dev/null and b/assets/image-10.png differ diff --git a/assets/image-11.png b/assets/image-11.png new file mode 100644 index 0000000..119e721 Binary files /dev/null and b/assets/image-11.png differ diff --git a/assets/image-12.png b/assets/image-12.png new file mode 100644 index 0000000..657eb59 Binary files /dev/null and b/assets/image-12.png differ diff --git a/assets/image-13.png b/assets/image-13.png new file mode 100644 index 0000000..e80b3fb Binary files /dev/null and b/assets/image-13.png differ diff --git a/assets/image-14.png b/assets/image-14.png new file mode 100644 index 0000000..49af66e Binary files /dev/null and b/assets/image-14.png differ diff --git a/assets/image-2.png b/assets/image-2.png new file mode 100644 index 0000000..1076080 Binary files /dev/null and b/assets/image-2.png differ diff --git a/assets/image-3.png b/assets/image-3.png new file mode 100644 index 0000000..0df0e86 Binary files /dev/null and b/assets/image-3.png differ diff --git a/assets/image-4.png b/assets/image-4.png new file mode 100644 index 0000000..6c8179e Binary files /dev/null and b/assets/image-4.png differ diff --git a/assets/image-5.png b/assets/image-5.png new file mode 100644 index 0000000..7badf54 Binary files /dev/null and b/assets/image-5.png differ diff --git a/assets/image-6.png b/assets/image-6.png new file mode 100644 index 0000000..61e96b2 Binary files /dev/null and b/assets/image-6.png differ diff --git a/assets/image-7.png b/assets/image-7.png new file mode 100644 index 0000000..c7e9da9 Binary files /dev/null and b/assets/image-7.png differ diff --git a/assets/image-8.png b/assets/image-8.png new file mode 100644 index 0000000..1308bc2 Binary files /dev/null and b/assets/image-8.png differ diff --git a/assets/image-9.png b/assets/image-9.png new file mode 100644 index 0000000..b9d6922 Binary files /dev/null and b/assets/image-9.png differ diff --git a/assets/image.png b/assets/image.png new file mode 100644 index 0000000..3a989e1 Binary files /dev/null and b/assets/image.png differ diff --git a/preemptible_server/.terraform.lock.hcl b/preemptible_server/.terraform.lock.hcl new file mode 100644 index 0000000..2b0c253 --- /dev/null +++ b/preemptible_server/.terraform.lock.hcl @@ -0,0 +1,24 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/local" { + version = "2.5.1" + hashes = [ + "h1:8oTPe2VUL6E2d3OcrvqyjI4Nn/Y/UEQN26WLk5O/B0g=", + ] +} + +provider "registry.terraform.io/hashicorp/random" { + version = "3.6.1" + hashes = [ + "h1:1OlP753r4lOKlBprL0HdZGWerm5DCabD5Mli8k8lWAg=", + ] +} + +provider "registry.terraform.io/terraform-provider-openstack/openstack" { + version = "1.49.0" + constraints = "~> 1.49.0" + hashes = [ + "h1:6I8IFY2JDKc6ntkF3C5w1rgIATpbdmvgWrnV7kcRq5o=", + ] +} diff --git a/preemptible_server/main.tf b/preemptible_server/main.tf index d50bcdc..f38deb7 100644 --- a/preemptible_server/main.tf +++ b/preemptible_server/main.tf @@ -2,7 +2,7 @@ module "keypair" { source = "./modules/keypair" keypair_name = "keypair-tf" - keypair_public_key = file("~/.ssh/id_rsa.pub") + keypair_public_key = file("~/.ssh/id_ed25519.pub") region = var.region } diff --git a/preemptible_server/resources/inventory.tmpl b/preemptible_server/resources/inventory.tmpl new file mode 100644 index 0000000..2bc1461 --- /dev/null +++ b/preemptible_server/resources/inventory.tmpl @@ -0,0 +1,4 @@ +[webapp] +${webapp_vm_ip_public} private_database_ip=${webapp_vm_ip_nat} +[database] +${database_vm_ip_public} \ No newline at end of file diff --git a/preemptible_server/versions.tf b/preemptible_server/versions.tf index b184cf6..10b2b7c 100644 --- a/preemptible_server/versions.tf +++ b/preemptible_server/versions.tf @@ -7,12 +7,12 @@ terraform { version = "~> 1.49.0" } } - backend "s3" { - bucket = "/students" - endpoint = "s3.storage.selcloud.ru" - key = "thirdtask.tfstate" - region = "ru-1" - skip_region_validation = true - skip_credentials_validation = true - } + # backend "s3" { + # bucket = "/students" + # endpoint = "s3.storage.selcloud.ru" + # key = "thirdtask.tfstate" + # region = "ru-1" + # skip_region_validation = true + # skip_credentials_validation = true + # } } \ No newline at end of file