fix apt confirms, heredoc vars, add if statements

This commit is contained in:
Robert Wilkins III 2023-04-19 16:44:55 +00:00
commit 1e6a40adee

View file

@ -34,57 +34,54 @@ if [[ -z "$subnet_exists" ]]; then
fi fi
# Create a firewall rule to allow TCP port 8080 for all instances in the VPC # Create a firewall rule to allow TCP port 8080 for all instances in the VPC
gcloud compute firewall-rules create allow-tcp-8080 \ firewall_8080_exists=$(gcloud compute firewall-rules list --filter="name=allow-tcp-8080" --format="value(name)")
--network $VPC_NAME \ if [[ -z "$firewall_8080_exists" ]]; then
--allow tcp:8080 \ gcloud compute firewall-rules create allow-tcp-8080 --network $VPC_NAME --allow tcp:8080 --source-ranges 0.0.0.0/0 --direction INGRESS
--source-ranges 0.0.0.0/0 \ fi
--direction INGRESS
# Create a firewall rule to allow IAP traffic # Create a firewall rule to allow IAP traffic
gcloud compute firewall-rules create allow-iap \ firewall_iap_exists=$(gcloud compute firewall-rules list --filter="name=allow-iap" --format="value(name)")
--network $VPC_NAME \ if [[ -z "$firewall_iap_exists" ]]; then
--allow tcp:80,tcp:443 \ gcloud compute firewall-rules create allow-iap --network $VPC_NAME --allow tcp:80,tcp:443 --source-ranges 35.235.240.0/20 --direction INGRESS
--source-ranges 35.235.240.0/20 \ fi
--direction INGRESS
# Create the Cloud Router and NAT Gateway # Create the Cloud Router and NAT Gateway
gcloud compute routers create $CLOUD_ROUTER_NAME \ cloud_router_exists=$(gcloud compute routers list --filter="name=$CLOUD_ROUTER_NAME" --format="value(name)")
--network $VPC_NAME \ if [[ -z "$cloud_router_exists" ]]; then
--region $REGION gcloud compute routers create $CLOUD_ROUTER_NAME --network $VPC_NAME --region $REGION
fi
gcloud compute routers nats create $NAT_GATEWAY_NAME \ nat_exists=$(gcloud compute routers list --filter="name=$CLOUD_ROUTER_NAME" --format="value(nats.name)")
--router $CLOUD_ROUTER_NAME \ if [[ -z "$nat_exists" ]]; then
--auto-allocate-nat-external-ips \ gcloud compute routers nats create $NAT_GATEWAY_NAME --router $CLOUD_ROUTER_NAME --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --enable-logging --region $REGION
--nat-all-subnet-ip-ranges \ fi
--enable-logging \
--region $REGION
# Define the startup script as a multiline Bash here-doc # Define the startup script as a multiline Bash here-doc
STARTUP_SCRIPT=$(cat <<'EOF' STARTUP_SCRIPT=$(cat <<'EOF'
#!/bin/bash #!/bin/bash
# Update and upgrade the system # Update and upgrade the system
apt update apt -y update
apt upgrade apt -y upgrade
# Install Python 3 pip, Langflow, and Nginx # Install Python 3 pip, Langflow, and Nginx
apt install python3-pip apt -y install python3-pip
pip install langflow pip install langflow
apt-get install nginx apt-get -y install nginx
# Configure Nginx for Langflow # Configure Nginx for Langflow
touch /etc/nginx/sites-available/langflow-app touch /etc/nginx/sites-available/langflow-app
echo "server { echo "server {
listen 0.0.0.0:7860; listen 0.0.0.0:8080;
location / { location / {
proxy_pass http://127.0.0.1:7860; proxy_pass http://127.0.0.1:7860;
proxy_set_header Host $host; proxy_set_header Host "\$host";
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP "\$remote_addr";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For "\$proxy_add_x_forwarded_for";
} }
}" >> /etc/nginx/sites-available/langflow-app }" >> /etc/nginx/sites-available/langflow-app
ln -s /etc/nginx/sites-available/my-app /etc/nginx/sites-enabled/ ln -s /etc/nginx/sites-available/langflow-app /etc/nginx/sites-enabled/
sudo nginx -t sudo nginx -t
sudo systemctl restart nginx sudo systemctl restart nginx
langflow langflow