code-server ssh-key path parameter

This commit is contained in:
MatOgr 2022-12-31 13:16:46 +01:00
parent 8d94241389
commit 7c5adf8517
4 changed files with 36 additions and 13 deletions

3
.gitignore vendored
View File

@ -1,2 +1,3 @@
*/token_file */token_file
*/*venv */*venv
*/current_ip.txt

19
code-server/README.md Normal file
View File

@ -0,0 +1,19 @@
# Just some README
W celu utworzenia zasobów z wykorzystaniem skryptów zawartych w tym folderze należy:
- posiadać zainstalowanego `Pythona` oraz menedżera `pip`
- umieścić token dostępu do zasobów Hetznera w pliku `DPZC-Hetzner/tokens/token_file`, obok skryptu `.py` oraz `.sh`
- umieścić klucz `id_ed25519.pub` w folderze `~/.ssh/`
- zmienić prawa dostępu na wykonywalne dla skryptów bashowych poprzez poniższe komendy:
```bash
chmod +x clean.sh deploy.sh
```
- w celu utworzenia zasobów wykonać skrypt
```bash
./deploy.sh
```
- w celu usunięcia utworzonych zasobów wykonać skrypt
```bash
./clean.sh
```
-----------------
To chyba wszystko

View File

@ -60,18 +60,17 @@ def create_client(creds_path):
return client return client
def load_key(key_folder, pub_key_name): def load_key(pub_key_path):
home_path = Path.home().joinpath(key_folder, pub_key_name) print(f"\t\tUsing the {pub_key_path} file")
print(f"\t\tUsing the {home_path} file") with open(pub_key_path) as f:
with open(home_path) as f:
key = f.readline() key = f.readline()
print("\t\tThe SSH KEY has been LOADED") print("\t\tThe SSH KEY has been LOADED")
return key return key
def create_key(client, key_name, key_folder, pub_key_name): def create_key(client, key_name, pub_key_path):
print("The SSH KEY has been...") print("The SSH KEY has been...")
key_of_power = load_key(key_folder, pub_key_name) key_of_power = load_key(pub_key_path)
key = client.ssh_keys.create(name=key_name, public_key=key_of_power) key = client.ssh_keys.create(name=key_name, public_key=key_of_power)
print("\tCREATED") print("\tCREATED")
return key return key
@ -167,10 +166,11 @@ def remove_code_server(client, server_name):
if __name__ == "__main__": if __name__ == "__main__":
client = create_client("../tokens/token_file") client = create_client("../tokens/token_file")
ssh_path = sys.argv[-2]
action = sys.argv[-1] action = sys.argv[-1]
if action == "--create": if action == "--create":
ssh_key = create_key(client, key_name, ".ssh", "id_ed25519.pub") ssh_key = create_key(client, key_name, ssh_path)
vnet = create_network(client, net_name, "10.10.10.0/24") vnet = create_network(client, net_name, "10.10.10.0/24")
volume = create_volume(client, volume_name, location) volume = create_volume(client, volume_name, location)
@ -182,6 +182,8 @@ if __name__ == "__main__":
f"You can access the server (in a few minutes) under the address: http://localhost:8888" f"You can access the server (in a few minutes) under the address: http://localhost:8888"
) )
print("\n\n\t\tHave fun!") print("\n\n\t\tHave fun!")
with open("current_ip.txt", "w") as f:
f.write(server.server.data_model.public_net.ipv4.ip)
elif action == "--clean": elif action == "--clean":
remove_code_server(client, server_name) remove_code_server(client, server_name)
remove_network(client, net_name) remove_network(client, net_name)

View File

@ -10,7 +10,9 @@ echo "--------------------------------------------------------------------------
echo " Success! I guess..." echo " Success! I guess..."
echo "############################" echo "############################"
echo "Let's spawn some new machines!" echo "Let's spawn some new machines!"
python create_code_server.py --create python create_code_server.py $1 --create
current_ip=$(<current_ip.txt)
echo "Your server's current IP is: $current_ip"
echo "Now let's wait for the machines to be ready..." echo "Now let's wait for the machines to be ready..."
seconds=100 seconds=100
start="$(($(date +%s) + $seconds))" start="$(($(date +%s) + $seconds))"
@ -18,7 +20,6 @@ while [ "$start" -ge `date +%s` ]; do
time="$(( $start - `date +%s` ))" time="$(( $start - `date +%s` ))"
printf '%s\r' "$(date -u -d "@$time" +%H:%M:%S)" printf '%s\r' "$(date -u -d "@$time" +%H:%M:%S)"
done done
echo "Let's try to get into and start the code-server..." echo "Let's try to get create a ssh tunnel and play..."
ssh-keygen -f "/home/${USER}/.ssh/known_hosts" -R "65.108.148.162" ssh-keygen -f "/home/${USER}/.ssh/known_hosts" -R "$current_ip"
ssh -oStrictHostKeyChecking=accept-new root@65.108.148.162 -i ~/.ssh/id_ed25519.pub -L 8888:127.0.0.1:8443 ssh -oStrictHostKeyChecking=accept-new root@$current_ip -i $1 -L 8888:127.0.0.1:8443
cd /root/ && docker-compose up -d