diff --git a/.env_template b/.env_template new file mode 100644 index 0000000..b36c655 --- /dev/null +++ b/.env_template @@ -0,0 +1,7 @@ +hetzner_api_token= +hetzner_ssh_public_key= + +aws_access_key_id= +aws_secret_access_key= +aws_session_token= +AWS_REGION = \ No newline at end of file diff --git a/README.md b/README.md index 2897b81..8093157 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,16 @@ -## 3.1, 3.2: -należy uruchomić skrypt run.sh, uruchomienie pliku del_gitea.py usuwa stworzone serwery +# Uruchamianie rozwiazań -## 3.4 -rozwiązanie w pliki cloud-init.yml \ No newline at end of file +## Przed uruchomieniem + należy uzupełnić wartości w pliku .env według szablonu z pliku .env_template + +Uruchomienie pliku clear_hetzer.py usuwa wszystkie stworzone serwery i load balancer z moim prefixem + +### Zadania 3.1, 3.2, katalog lab3/3.2: + należy uruchomić skrypt lab3/3.2/deploy.sh + gitea dostępna na porcie 3000 + +### 3.4 + rozwiązanie w pliki lab3/3.4/cloud-init.yml + +### 4.1 Hetzner + rozwiązanie w katalogu lab4/4.1-hetzner, należy uruchomić deploy.sh diff --git a/del_gitea.py b/clear_hetzer.py similarity index 51% rename from del_gitea.py rename to clear_hetzer.py index 833a853..aef9a73 100644 --- a/del_gitea.py +++ b/clear_hetzer.py @@ -1,8 +1,17 @@ +import os + from hcloud import Client +from dotenv import load_dotenv + +load_dotenv(dotenv_path=".env") + +api_token = os.getenv("hetzner_api_token") + client = Client( - token="KccUEiddxtzGoLWSNC3V8tylq7MYHCjdnShtgasQ8jSbHqCjGoaa6Rq7yoz4uS23" + token=api_token ) + PREFIX = "s444417" servers = client.servers.get_all() @@ -12,3 +21,9 @@ for s in servers: action = client.servers.delete(s) print(f"Usuwanie serwera {s.data_model.name} ({s.data_model.public_net.ipv4.ip}): {action.data_model.status}") +servers = client.load_balancers.get_all() +print(f"Usuwanie {len(servers)} load balancer") +for s in servers: + if s.data_model.name.startswith(PREFIX): + action = client.load_balancers.delete(s) + diff --git a/lab3/3.2/deploy.sh b/lab3/3.2/deploy.sh new file mode 100644 index 0000000..b8c7158 --- /dev/null +++ b/lab3/3.2/deploy.sh @@ -0,0 +1,5 @@ +#!/bin/bash +pip install hcloud + +python clear_hetnzer.py +python lab3/3.2/gitea_auto.py \ No newline at end of file diff --git a/gitea_auto.py b/lab3/3.2/gitea_auto.py similarity index 88% rename from gitea_auto.py rename to lab3/3.2/gitea_auto.py index 4c6c60b..b49ce24 100644 --- a/gitea_auto.py +++ b/lab3/3.2/gitea_auto.py @@ -1,22 +1,21 @@ -from hcloud import Client +import os +from hcloud import Client from hcloud.images.domain import Image from hcloud.server_types.domain import ServerType - from hcloud.networks.domain import NetworkSubnet - from hcloud.locations.domain import Location +from dotenv import load_dotenv -api_token = "" +load_dotenv(dotenv_path=".env") -with open("token.txt", "r") as file: - api_token = file.read().strip() +api_token = os.getenv("hetzner_api_token") client = Client(token=api_token) PREFIX = "s444417" -YOUR_LOCAL_SSH_PUBKEY = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQChkJi01w/rrQ7HICEJYDN/4ldPxorU4umbc8Sw1MRIU2Mz/rds/pd2f+B/PYTjvvtOdZml4SyC4Y8kFoBo4AmRUTxn2yk3g/d1eiDtRzhY1c22+mua6V1dee72EhWAWHaAAa9caChMWV3oP2TljgUEF/Hd7ctMkMxo0Hlh6EVHec1HR6lMIWspYRWjIKPLzknW7WePNgAB5MBDz6+WzokwnULbglUnJ5uy+WrFgWl9tfN7MoNyG1aZkLiWuXvF1HUddAS+gmhs2MEEWeGi3kNewBKQfviAxdCgEKirPra+4ffgLUej7exDzcacxU8AjcK5DLlk3LJr34YTpeV+LMN6M3FB/XVu4vAv9IAyHCOJRer8Vb7gM+ehukgr6HCPrFyCgO3GBh9TvQaBeUajtqjJQ2YHw7D2SFWEfZ6XSx2YSW0NQpfturEHlFLLzN7ohpzSzupe/8yHXlhASSntducXrsXNm1Sz2PdqjDSkoMRZjCzNIxhUS67SZDncOxqsmjE= s444417@MIK" +YOUR_LOCAL_SSH_PUBKEY = os.getenv("hetzner_ssh_public_key") vnet_name = f"{PREFIX}-pzc-test-vnet" vnet = client.networks.get_by_name(vnet_name) or None diff --git a/cloud-init.yml b/lab3/3.4/cloud-init.yml similarity index 100% rename from cloud-init.yml rename to lab3/3.4/cloud-init.yml diff --git a/lab4/4.1-hetzner/start-hetzner.py b/lab4/4.1-hetzner/start-hetzner.py index 69bffb1..f966ad5 100644 --- a/lab4/4.1-hetzner/start-hetzner.py +++ b/lab4/4.1-hetzner/start-hetzner.py @@ -1,26 +1,23 @@ -from hcloud import Client +import os +from hcloud import Client from hcloud.images.domain import Image from hcloud.server_types.domain import ServerType - from hcloud.networks.domain import NetworkSubnet - from hcloud.locations.domain import Location - from hcloud.load_balancer_types.domain import LoadBalancerType - from hcloud.load_balancers.domain import LoadBalancerHealthCheck, LoadBalancerService, LoadBalancerHealtCheckHttp, LoadBalancerTarget +from dotenv import load_dotenv -api_token = "" +load_dotenv(dotenv_path=".env") -with open("token.txt", "r") as file: - api_token = file.read().strip() +api_token = os.getenv("hetzner_api_token") client = Client(token=api_token) PREFIX = "s444417" -YOUR_LOCAL_SSH_PUBKEY = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQChkJi01w/rrQ7HICEJYDN/4ldPxorU4umbc8Sw1MRIU2Mz/rds/pd2f+B/PYTjvvtOdZml4SyC4Y8kFoBo4AmRUTxn2yk3g/d1eiDtRzhY1c22+mua6V1dee72EhWAWHaAAa9caChMWV3oP2TljgUEF/Hd7ctMkMxo0Hlh6EVHec1HR6lMIWspYRWjIKPLzknW7WePNgAB5MBDz6+WzokwnULbglUnJ5uy+WrFgWl9tfN7MoNyG1aZkLiWuXvF1HUddAS+gmhs2MEEWeGi3kNewBKQfviAxdCgEKirPra+4ffgLUej7exDzcacxU8AjcK5DLlk3LJr34YTpeV+LMN6M3FB/XVu4vAv9IAyHCOJRer8Vb7gM+ehukgr6HCPrFyCgO3GBh9TvQaBeUajtqjJQ2YHw7D2SFWEfZ6XSx2YSW0NQpfturEHlFLLzN7ohpzSzupe/8yHXlhASSntducXrsXNm1Sz2PdqjDSkoMRZjCzNIxhUS67SZDncOxqsmjE= s444417@MIK" +YOUR_LOCAL_SSH_PUBKEY = os.getenv("hetzner_ssh_public_key") vnet_name = f"{PREFIX}-pzc-test-vnet" vnet = client.networks.get_by_name(vnet_name) or None @@ -44,9 +41,10 @@ print(f"Klucz {ssh_key.data_model.name} został dodany: {ssh_key.data_model.publ cloud_init_wp1=r'''#cloud-config runcmd: + - cd /home - git clone https://git.wmi.amu.edu.pl/s444417/dpzc - - chmod +x /dpzc/lab4/4.1-hetzner/webservice - - systemctl start /dpzc/lab4/4.1-hetzner/webservice + - chmod +x /home/dpzc/lab4/4.1-hetzner/webservice + - /home/dpzc/lab4/4.1-hetzner/webservice ''' servers = [] @@ -69,7 +67,7 @@ for i in range(2): servers.append(server) -name = f"{PREFIX}-load-balancer-${i}" +name = f"{PREFIX}-load-balancer" targets = [] for s in servers: diff --git a/lab4/aws_wordpress_autoscale.py b/lab4/aws/aws_wordpress_autoscale.py similarity index 100% rename from lab4/aws_wordpress_autoscale.py rename to lab4/aws/aws_wordpress_autoscale.py diff --git a/lab4/boto3-load-balancers-add.py b/lab4/aws/boto3-load-balancers-add.py similarity index 100% rename from lab4/boto3-load-balancers-add.py rename to lab4/aws/boto3-load-balancers-add.py diff --git a/lab4/boto3-load-balancers-list.py b/lab4/aws/boto3-load-balancers-list.py similarity index 100% rename from lab4/boto3-load-balancers-list.py rename to lab4/aws/boto3-load-balancers-list.py diff --git a/lab4/boto3_helper.py b/lab4/aws/boto3_helper.py similarity index 100% rename from lab4/boto3_helper.py rename to lab4/aws/boto3_helper.py diff --git a/lab4/create-load-balancer.py b/lab4/aws/create-load-balancer.py similarity index 100% rename from lab4/create-load-balancer.py rename to lab4/aws/create-load-balancer.py diff --git a/lab4/prime.py b/lab4/aws/prime.py similarity index 100% rename from lab4/prime.py rename to lab4/aws/prime.py diff --git a/run.sh b/run.sh deleted file mode 100644 index f03cd8f..0000000 --- a/run.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -pip install hcloud - -python del_gitea.py -python gitea_auto.py \ No newline at end of file