update fix
This commit is contained in:
parent
40c55034ea
commit
d39ee251a5
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
token.txt
|
188
IasS/ex1-2/hetzner-gitea-init.py
Normal file
188
IasS/ex1-2/hetzner-gitea-init.py
Normal file
@ -0,0 +1,188 @@
|
|||||||
|
from hcloud import Client
|
||||||
|
from hcloud.networks.domain import NetworkSubnet
|
||||||
|
from hcloud.locations.domain import Location
|
||||||
|
from hcloud.images.domain import Image
|
||||||
|
from hcloud.server_types.domain import ServerType
|
||||||
|
import time
|
||||||
|
|
||||||
|
client = Client(
|
||||||
|
token="KccUEiddxtzGoLWSNC3V8tylq7MYHCjdnShtgasQ8jSbHqCjGoaa6Rq7yoz4uS23"
|
||||||
|
)
|
||||||
|
PREFIX = "s444498"
|
||||||
|
YOUR_LOCAL_SSH_PUBKEY = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAj15oTbXA0KGBw5V/76KXDgJZpLNrxUO/rTA0u0eRl1 wirus@wirusowylapek"
|
||||||
|
try:
|
||||||
|
ssh_key = client.ssh_keys.create(name=f"{PREFIX}-pzc-ssh-key-2", public_key=YOUR_LOCAL_SSH_PUBKEY)
|
||||||
|
print(f"Key {ssh_key.data_model.name} created: {ssh_key.data_model.public_key}")
|
||||||
|
except:
|
||||||
|
ssh_key = client.ssh_keys.get_by_name(f"{PREFIX}-pzc-ssh-key-2")
|
||||||
|
print(f"Key {ssh_key.data_model.name} already in use: {ssh_key.data_model.public_key}")
|
||||||
|
|
||||||
|
try:
|
||||||
|
vnet = client.networks.create(
|
||||||
|
name=f"{PREFIX}-pzc-test-vnet",
|
||||||
|
ip_range="10.10.10.0/24",
|
||||||
|
subnets=[
|
||||||
|
NetworkSubnet(ip_range="10.10.10.0/24", network_zone="eu-central", type="cloud")
|
||||||
|
]
|
||||||
|
)
|
||||||
|
print(f"Created network: {vnet.data_model.name} ({vnet.data_model.ip_range})")
|
||||||
|
except:
|
||||||
|
vnet = client.networks.get_by_name(
|
||||||
|
f"{PREFIX}-pzc-test-vnet",
|
||||||
|
)
|
||||||
|
print(f"Network in use: {vnet.data_model.name} ({vnet.data_model.ip_range})")
|
||||||
|
|
||||||
|
try:
|
||||||
|
shared_volume = client.volumes.create(
|
||||||
|
size=15,
|
||||||
|
name="gitea-volume-s444498",
|
||||||
|
location=Location("hel1"))
|
||||||
|
shared_volume.action.wait_until_finished()
|
||||||
|
print(f"Created volume: {shared_volume.volume}")
|
||||||
|
except:
|
||||||
|
shared_volume = client.volumes.get_by_name("gitea-volume-s444498")
|
||||||
|
shared_volume.action.wait_until_finished()
|
||||||
|
print(f"Volume in use: {shared_volume.volume}")
|
||||||
|
|
||||||
|
volume_device = shared_volume.volume.linux_device
|
||||||
|
|
||||||
|
cloud_init_mysql=r'''#cloud-config
|
||||||
|
packages:
|
||||||
|
- apt-transport-https
|
||||||
|
- ca-certificates
|
||||||
|
- curl
|
||||||
|
- gnupg-agent
|
||||||
|
- software-properties-common
|
||||||
|
|
||||||
|
write_files:
|
||||||
|
- path: /root/docker-compose.yml
|
||||||
|
content: |
|
||||||
|
version: '3.9'
|
||||||
|
|
||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: mysql:5.7
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: gitea
|
||||||
|
MYSQL_USER: gitea
|
||||||
|
MYSQL_PASSWORD: gitea
|
||||||
|
MYSQL_ROOT_PASSWORD: gitea
|
||||||
|
ports:
|
||||||
|
- "10.10.10.2:3306:3306"
|
||||||
|
volumes:
|
||||||
|
- my-db:/var/lib/mysql
|
||||||
|
phpmyadmin:
|
||||||
|
image: phpmyadmin
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "8080:80"
|
||||||
|
volumes:
|
||||||
|
my-db: {}
|
||||||
|
|
||||||
|
runcmd:
|
||||||
|
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
|
||||||
|
- add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
|
||||||
|
- apt-get update -y
|
||||||
|
- apt-get install -y docker-ce docker-ce-cli containerd.io
|
||||||
|
- curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||||
|
- chmod +x /usr/local/bin/docker-compose
|
||||||
|
- systemctl start docker
|
||||||
|
- systemctl enable docker
|
||||||
|
- cd /root/ && docker-compose up -d
|
||||||
|
'''
|
||||||
|
|
||||||
|
mysql_server = client.servers.create(
|
||||||
|
name=f"{PREFIX}-mysql1",
|
||||||
|
server_type=ServerType("cx11"),
|
||||||
|
image=Image(name="ubuntu-20.04"),
|
||||||
|
ssh_keys=[ssh_key],
|
||||||
|
networks=[vnet],
|
||||||
|
location=Location("hel1"),
|
||||||
|
user_data=cloud_init_mysql
|
||||||
|
)
|
||||||
|
|
||||||
|
mysql_server.action.wait_until_finished()
|
||||||
|
print(f"Creating mysql server: {mysql_server.action.complete}")
|
||||||
|
|
||||||
|
time.sleep(20)
|
||||||
|
|
||||||
|
cloud_init_gitea=r'''#cloud-config
|
||||||
|
packages:
|
||||||
|
- apt-transport-https
|
||||||
|
- ca-certificates
|
||||||
|
- curl
|
||||||
|
- gnupg-agent
|
||||||
|
- software-properties-common
|
||||||
|
|
||||||
|
write_files:
|
||||||
|
- path: /root/docker-compose.yml
|
||||||
|
content: |
|
||||||
|
version: "3"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
gitea:
|
||||||
|
external: false
|
||||||
|
|
||||||
|
services:
|
||||||
|
server:
|
||||||
|
image: gitea/gitea:1.17.4
|
||||||
|
container_name: gitea
|
||||||
|
environment:
|
||||||
|
- USER_UID=1000
|
||||||
|
- USER_GID=1000
|
||||||
|
- GITEA__server__DOMAIN=${DOMAIN}
|
||||||
|
- GITEA__database__DB_TYPE=mysql
|
||||||
|
- GITEA__database__HOST=10.10.10.2:3306
|
||||||
|
- GITEA__database__NAME=gitea
|
||||||
|
- GITEA__database__USER=gitea
|
||||||
|
- GITEA__database__PASSWD=gitea
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- gitea
|
||||||
|
volumes:
|
||||||
|
- ./data:/root/gitea
|
||||||
|
- ./config:/root/gitea/config
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
- /mnt/data_gitea:/data
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
- "222:22"
|
||||||
|
'''
|
||||||
|
runcmd = f'''
|
||||||
|
runcmd:
|
||||||
|
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
|
||||||
|
- add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
|
||||||
|
- apt-get update -y
|
||||||
|
- apt-get install -y docker-ce docker-ce-cli containerd.io
|
||||||
|
- curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||||
|
- chmod +x /usr/local/bin/docker-compose
|
||||||
|
- systemctl start docker
|
||||||
|
- systemctl enable docker
|
||||||
|
- cd /mnt/
|
||||||
|
- mkdir data_gitea
|
||||||
|
- cd /root/
|
||||||
|
- IP=$(hostname -I | cut -d ' ' -f 1)
|
||||||
|
- echo "DOMAIN=$IP" >> .env
|
||||||
|
- sudo mkfs.xfs -f {volume_device}
|
||||||
|
- mount -o discard,defaults {volume_device} /mnt/data_gitea
|
||||||
|
- docker-compose up -d
|
||||||
|
'''
|
||||||
|
|
||||||
|
cloud_init_gitea += runcmd
|
||||||
|
|
||||||
|
gitea_server = client.servers.create(
|
||||||
|
name=f"{PREFIX}-gitea1",
|
||||||
|
server_type=ServerType("cx11"),
|
||||||
|
image=Image(name="ubuntu-20.04"),
|
||||||
|
ssh_keys=[ssh_key],
|
||||||
|
networks=[vnet],
|
||||||
|
location=Location("hel1"),
|
||||||
|
user_data=cloud_init_gitea,
|
||||||
|
volumes=[shared_volume.volume],
|
||||||
|
automount=True
|
||||||
|
)
|
||||||
|
|
||||||
|
gitea_server.action.wait_until_finished()
|
||||||
|
print(f"Creating gitea server: {gitea_server.action.complete}")
|
@ -2,7 +2,7 @@
|
|||||||
"cells": [
|
"cells": [
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 34,
|
"execution_count": 2,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@ -30,17 +30,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 35,
|
"execution_count": null,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [],
|
||||||
{
|
|
||||||
"name": "stdout",
|
|
||||||
"output_type": "stream",
|
|
||||||
"text": [
|
|
||||||
"Network in use: s444498-pzc-test-vnet (10.10.10.0/24)\n"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"source": [
|
"source": [
|
||||||
"from hcloud.networks.domain import NetworkSubnet\n",
|
"from hcloud.networks.domain import NetworkSubnet\n",
|
||||||
"\n",
|
"\n",
|
||||||
@ -62,17 +54,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 36,
|
"execution_count": null,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [],
|
||||||
{
|
|
||||||
"name": "stdout",
|
|
||||||
"output_type": "stream",
|
|
||||||
"text": [
|
|
||||||
"Creating gitea server: True\n"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"source": [
|
"source": [
|
||||||
"from hcloud.locations.domain import Location\n",
|
"from hcloud.locations.domain import Location\n",
|
||||||
"from hcloud.images.domain import Image\n",
|
"from hcloud.images.domain import Image\n",
|
||||||
@ -124,18 +108,61 @@
|
|||||||
" - cd /root/ && docker-compose up -d\n",
|
" - cd /root/ && docker-compose up -d\n",
|
||||||
" '''\n",
|
" '''\n",
|
||||||
"\n",
|
"\n",
|
||||||
"mysql_server = client.servers.create(\n",
|
"for i in range(20):\n",
|
||||||
" name=f\"{PREFIX}-mysql\", \n",
|
"\n",
|
||||||
|
" mysql_server = client.servers.create(\n",
|
||||||
|
" name=f\"{PREFIX}-mysql-{i}\", \n",
|
||||||
" server_type=ServerType(\"cx11\"), \n",
|
" server_type=ServerType(\"cx11\"), \n",
|
||||||
" image=Image(name=\"ubuntu-20.04\"), \n",
|
" image=Image(name=\"ubuntu-20.04\"), \n",
|
||||||
" ssh_keys=[ssh_key], \n",
|
" ssh_keys=[ssh_key], \n",
|
||||||
" networks=[vnet], \n",
|
" networks=[vnet], \n",
|
||||||
" location=Location(\"hel1\"), \n",
|
" location=Location(\"hel1\"), \n",
|
||||||
" user_data=cloud_init_mysql\n",
|
" user_data=cloud_init_mysql\n",
|
||||||
")\n",
|
" )\n",
|
||||||
"\n",
|
"\n",
|
||||||
"mysql_server.action.wait_until_finished()\n",
|
" mysql_server.action.wait_until_finished()\n",
|
||||||
"print(f\"Creating gitea server: {mysql_server.action.complete}\")"
|
" print(f\"Creating gitea server: {mysql_server.action.complete}\")"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 1,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"ename": "NameError",
|
||||||
|
"evalue": "name 'client' is not defined",
|
||||||
|
"output_type": "error",
|
||||||
|
"traceback": [
|
||||||
|
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||||||
|
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
|
||||||
|
"Cell \u001b[0;32mIn [1], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m shared_volume \u001b[39m=\u001b[39m client\u001b[39m.\u001b[39mvolumes\u001b[39m.\u001b[39mcreate(\n\u001b[1;32m 2\u001b[0m size\u001b[39m=\u001b[39m\u001b[39m15\u001b[39m,\n\u001b[1;32m 3\u001b[0m name\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mgitea-volume\u001b[39m\u001b[39m\"\u001b[39m)\n",
|
||||||
|
"\u001b[0;31mNameError\u001b[0m: name 'client' is not defined"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 8,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"Usuwanie 9 serwerów\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"servers = client.servers.get_all()\n",
|
||||||
|
"print(f\"Usuwanie {len(servers)} serwerów\")\n",
|
||||||
|
"for s in servers:\n",
|
||||||
|
" if s.data_model.name.startswith(PREFIX):\n",
|
||||||
|
" action = client.servers.delete(s)\n",
|
||||||
|
" print(f\"\\tUsuwanie serwera {s.data_model.name} ({s.data_model.public_net.ipv4.ip}): {action.data_model.status}\")"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
@ -2,7 +2,7 @@
|
|||||||
"cells": [
|
"cells": [
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 22,
|
"execution_count": 7,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@ -30,7 +30,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 23,
|
"execution_count": 8,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
@ -62,14 +62,14 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 24,
|
"execution_count": 9,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Creating gitea server: True\n"
|
"Creating vscode server: True\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -85,16 +85,14 @@
|
|||||||
" - curl\n",
|
" - curl\n",
|
||||||
" - gnupg-agent\n",
|
" - gnupg-agent\n",
|
||||||
" - software-properties-common\n",
|
" - software-properties-common\n",
|
||||||
"\n",
|
|
||||||
"write_files:\n",
|
"write_files:\n",
|
||||||
" - content: |\n",
|
" - content: |\n",
|
||||||
" curl -fsSL https://code-server.dev/install.sh > /root/install.sh\n",
|
" curl -fsSL https://code-server.dev/install.sh > /root/install.sh\n",
|
||||||
" path: /root/install.sh\n",
|
" path: /root/install.sh\n",
|
||||||
" owner: root:root\n",
|
" owner: root:root\n",
|
||||||
" permissions: '755'\n",
|
" permissions: '755'\n",
|
||||||
"\n",
|
|
||||||
"runcmd:\n",
|
"runcmd:\n",
|
||||||
" - bash /root/install.sh\n",
|
" - bash install.sh\n",
|
||||||
" - code-server --bind-addr 0.0.0.0:8080\n",
|
" - code-server --bind-addr 0.0.0.0:8080\n",
|
||||||
" '''\n",
|
" '''\n",
|
||||||
"\n",
|
"\n",
|
||||||
@ -109,7 +107,7 @@
|
|||||||
")\n",
|
")\n",
|
||||||
"\n",
|
"\n",
|
||||||
"vscode_server.action.wait_until_finished()\n",
|
"vscode_server.action.wait_until_finished()\n",
|
||||||
"print(f\"Creating gitea server: {vscode_server.action.complete}\")"
|
"print(f\"Creating vscode server: {vscode_server.action.complete}\")"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
@ -4,7 +4,7 @@ from hcloud.server_types.domain import ServerType
|
|||||||
from hcloud.networks.domain import NetworkSubnet
|
from hcloud.networks.domain import NetworkSubnet
|
||||||
from hcloud.locations.domain import Location
|
from hcloud.locations.domain import Location
|
||||||
from hcloud.load_balancer_types.domain import LoadBalancerType
|
from hcloud.load_balancer_types.domain import LoadBalancerType
|
||||||
from hcloud.load_balancers.domain import LoadBalancerTarget, LoadBalancerService, LoadBalancerHealthCheck, LoadBalancerHealtCheckHttp
|
from hcloud.load_balancers.domain import LoadBalancerTarget, LoadBalancerService, LoadBalancerServiceHttp, LoadBalancerHealthCheck, LoadBalancerHealtCheckHttp
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
with open("../token.txt", "r") as file:
|
with open("../token.txt", "r") as file:
|
||||||
@ -42,14 +42,38 @@ except:
|
|||||||
)
|
)
|
||||||
print(f"Network in use: {vnet.data_model.name} ({vnet.data_model.ip_range})")
|
print(f"Network in use: {vnet.data_model.name} ({vnet.data_model.ip_range})")
|
||||||
|
|
||||||
webservice_init=r'''
|
webservice_init=r'''#cloud-config
|
||||||
#cloud-config
|
packages:
|
||||||
|
- apt-transport-https
|
||||||
|
- ca-certificates
|
||||||
|
- curl
|
||||||
|
- gnupg-agent
|
||||||
|
- software-properties-common
|
||||||
|
|
||||||
|
write_files:
|
||||||
|
- path: /root/Dockerfile
|
||||||
|
content: |
|
||||||
|
FROM ubuntu
|
||||||
|
COPY ./webservice /
|
||||||
|
RUN chmod +x ./webservice
|
||||||
|
EXPOSE 80:8080/tcp
|
||||||
|
CMD ./webservice
|
||||||
|
|
||||||
runcmd:
|
runcmd:
|
||||||
- git clone https://git.wmi.amu.edu.pl/s444498/cloud
|
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
|
||||||
- cd Public_cloud
|
- add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
|
||||||
- chmod +x webservice
|
- apt-get update -y
|
||||||
- ./webservice
|
- apt-get install -y docker-ce docker-ce-cli containerd.io
|
||||||
|
- curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||||
|
- chmod +x /usr/local/bin/docker-compose
|
||||||
|
- curl -fsSL https://git.wmi.amu.edu.pl/s444498/cloud/raw/branch/master/Public_cloud/webservice > /root/webservice
|
||||||
|
- systemctl start docker
|
||||||
|
- systemctl enable docker
|
||||||
|
- cd /root/
|
||||||
|
- docker build -t webservice .
|
||||||
|
- docker run -d -p 80:8080 -t webservice
|
||||||
'''
|
'''
|
||||||
|
|
||||||
for i in range(NUM_OF_SERVERS):
|
for i in range(NUM_OF_SERVERS):
|
||||||
webservice_server = client.servers.create(
|
webservice_server = client.servers.create(
|
||||||
name=f"{PREFIX}-webservice-{i+1}",
|
name=f"{PREFIX}-webservice-{i+1}",
|
||||||
@ -63,22 +87,23 @@ for i in range(NUM_OF_SERVERS):
|
|||||||
|
|
||||||
webservice_server.action.wait_until_finished()
|
webservice_server.action.wait_until_finished()
|
||||||
print(f"Creating webservice {i+1}: {webservice_server.action.complete}")
|
print(f"Creating webservice {i+1}: {webservice_server.action.complete}")
|
||||||
loadbalancer_targets.append(LoadBalancerTarget(type="server", server=webservice_server.server, use_private_ip=True))
|
loadbalancer_targets.append(LoadBalancerTarget(type="server", server=webservice_server.server, use_private_ip=False))
|
||||||
|
|
||||||
try:
|
loadbalancer = client.load_balancers.create(
|
||||||
loadbalancer = client.load_balancers.create(
|
|
||||||
name= f"{PREFIX}-loadbalancer",
|
name= f"{PREFIX}-loadbalancer",
|
||||||
load_balancer_type=LoadBalancerType(name="lb11"),
|
load_balancer_type=LoadBalancerType(name="lb11"),
|
||||||
location=Location("hel1"),
|
location=Location("hel1"),
|
||||||
|
targets=loadbalancer_targets,
|
||||||
|
public_interface=True,
|
||||||
services=[
|
services=[
|
||||||
LoadBalancerService(
|
LoadBalancerService(
|
||||||
protocol="http",
|
protocol="http",
|
||||||
listen_port=8080,
|
listen_port=80,
|
||||||
destination_port=8080,
|
destination_port=80,
|
||||||
proxyprotocol=False,
|
proxyprotocol=False,
|
||||||
health_check=LoadBalancerHealthCheck(
|
health_check=LoadBalancerHealthCheck(
|
||||||
protocol="http",
|
protocol="http",
|
||||||
port="8080",
|
port=80,
|
||||||
interval=15,
|
interval=15,
|
||||||
timeout=10,
|
timeout=10,
|
||||||
retries=3,
|
retries=3,
|
||||||
@ -88,17 +113,18 @@ try:
|
|||||||
tls=False
|
tls=False
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
)
|
http=LoadBalancerServiceHttp(
|
||||||
|
cookie_name='HCLBSTICKY',
|
||||||
|
cookie_lifetime=300,
|
||||||
|
sticky_sessions=True,
|
||||||
|
certificates=[],
|
||||||
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
targets=loadbalancer_targets,
|
)
|
||||||
public_interface=True,
|
|
||||||
network=vnet
|
|
||||||
)
|
|
||||||
except:
|
|
||||||
loadbalancer = client.load_balancers.get_by_name(f"{PREFIX}-loadbalancer")
|
|
||||||
|
|
||||||
loadbalancer.action.wait_until_finished()
|
loadbalancer.action.wait_until_finished()
|
||||||
print(f"Loadbalancer creating...: {loadbalancer.action.complete}")
|
print(f"Loadbalancer creating...: {loadbalancer.action.complete}")
|
||||||
|
|
||||||
load_balancer = client.load_balancers.get_by_name(f"{PREFIX}-loadbalancer")
|
load_balancer = client.load_balancers.get_by_name(f"{PREFIX}-loadbalancer")
|
||||||
print(f"Webserwis: http://{load_balancer.data_model.public_net.ipv4.ip}:8080/factors/")
|
print(f"Webserwis: http://{load_balancer.data_model.public_net.ipv4.ip}:80/factors/")
|
||||||
|
@ -32,6 +32,20 @@ except:
|
|||||||
)
|
)
|
||||||
print(f"Network in use: {vnet.data_model.name} ({vnet.data_model.ip_range})")
|
print(f"Network in use: {vnet.data_model.name} ({vnet.data_model.ip_range})")
|
||||||
|
|
||||||
|
try:
|
||||||
|
shared_volume = client.volumes.create(
|
||||||
|
size=15,
|
||||||
|
name="gitea-volume-s444498",
|
||||||
|
location=Location("hel1"))
|
||||||
|
shared_volume.action.wait_until_finished()
|
||||||
|
print(f"Created volume: {shared_volume.volume}")
|
||||||
|
except:
|
||||||
|
shared_volume = client.volumes.get_by_name("gitea-volume-s444498")
|
||||||
|
shared_volume.action.wait_until_finished()
|
||||||
|
print(f"Volume in use: {shared_volume.volume}")
|
||||||
|
|
||||||
|
volume_device = shared_volume.volume.linux_device
|
||||||
|
|
||||||
cloud_init_mysql=r'''#cloud-config
|
cloud_init_mysql=r'''#cloud-config
|
||||||
packages:
|
packages:
|
||||||
- apt-transport-https
|
- apt-transport-https
|
||||||
@ -89,7 +103,7 @@ mysql_server = client.servers.create(
|
|||||||
)
|
)
|
||||||
|
|
||||||
mysql_server.action.wait_until_finished()
|
mysql_server.action.wait_until_finished()
|
||||||
print(f"Creating gitea server: {mysql_server.action.complete}")
|
print(f"Creating mysql server: {mysql_server.action.complete}")
|
||||||
|
|
||||||
time.sleep(20)
|
time.sleep(20)
|
||||||
|
|
||||||
@ -131,7 +145,7 @@ write_files:
|
|||||||
- ./config:/root/gitea/config
|
- ./config:/root/gitea/config
|
||||||
- /etc/timezone:/etc/timezone:ro
|
- /etc/timezone:/etc/timezone:ro
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
- /mnt/volume:/data
|
- /mnt/data_gitea:/data
|
||||||
ports:
|
ports:
|
||||||
- "3000:3000"
|
- "3000:3000"
|
||||||
- "222:22"
|
- "222:22"
|
||||||
@ -146,9 +160,13 @@ runcmd:
|
|||||||
- chmod +x /usr/local/bin/docker-compose
|
- chmod +x /usr/local/bin/docker-compose
|
||||||
- systemctl start docker
|
- systemctl start docker
|
||||||
- systemctl enable docker
|
- systemctl enable docker
|
||||||
|
- cd /mnt/
|
||||||
|
- mkdir data_gitea
|
||||||
- cd /root/
|
- cd /root/
|
||||||
- IP=$(hostname -I | cut -d ' ' -f 1)
|
- IP=$(hostname -I | cut -d ' ' -f 1)
|
||||||
- echo "DOMAIN=$IP" >> .env
|
- echo "DOMAIN=$IP" >> .env
|
||||||
|
- sudo mkfs.xfs -f {volume_device}
|
||||||
|
- mount -o discard,defaults {volume_device} /mnt/data_gitea
|
||||||
- docker-compose up -d
|
- docker-compose up -d
|
||||||
'''
|
'''
|
||||||
|
|
||||||
@ -161,7 +179,9 @@ gitea_server = client.servers.create(
|
|||||||
ssh_keys=[ssh_key],
|
ssh_keys=[ssh_key],
|
||||||
networks=[vnet],
|
networks=[vnet],
|
||||||
location=Location("hel1"),
|
location=Location("hel1"),
|
||||||
user_data=cloud_init_gitea
|
user_data=cloud_init_gitea,
|
||||||
|
volumes=[shared_volume.volume],
|
||||||
|
automount=True
|
||||||
)
|
)
|
||||||
|
|
||||||
gitea_server.action.wait_until_finished()
|
gitea_server.action.wait_until_finished()
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user