Merge pull request #1627 from aslanvyos/sagitta

Rewritten VyOS deployment for GCP
This commit is contained in:
Robert Göhler 2025-04-23 13:58:35 +02:00 committed by GitHub
commit 3772be8d6f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
28 changed files with 243 additions and 24 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 78 KiB

BIN
docs/_static/images/cloud-azure-vnet-06.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

BIN
docs/_static/images/cloud-gcp-market-01.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

BIN
docs/_static/images/cloud-gcp-market-02.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
docs/_static/images/cloud-gcp-market-03.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

BIN
docs/_static/images/cloud-gcp-market-04.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
docs/_static/images/cloud-gcp-market-05.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
docs/_static/images/cloud-gcp-proj.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

BIN
docs/_static/images/cloud-gcp-svc.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
docs/_static/images/cloud-gcp-vm-01.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
docs/_static/images/cloud-gcp-vm-02.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
docs/_static/images/cloud-gcp-vm-03.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
docs/_static/images/cloud-gcp-vm-04.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
docs/_static/images/cloud-gcp-vm-06.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
docs/_static/images/cloud-gcp-vm-07.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
docs/_static/images/cloud-gcp-vm-08.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
docs/_static/images/cloud-gcp-vm-09.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

BIN
docs/_static/images/cloud-gcp-vpc-01.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

BIN
docs/_static/images/cloud-gcp-vpc-02.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

BIN
docs/_static/images/cloud-gcp-vpc-03.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

BIN
docs/_static/images/cloud-gcp-vpc-04.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

BIN
docs/_static/images/cloud-gcp-vpc-05.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

BIN
docs/_static/images/cloud-gcp-vpc-06.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
docs/_static/images/cloud-gcp-vpc-07.png vendored Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -2,13 +2,26 @@
Google Cloud Platform
#####################
Deploy VM
---------
This guide provides step-by-step instructions for deploying a VyOS instance with two NICs and the required resources on Google Cloud Platform (GCP).
To deploy VyOS on GCP (Google Cloud Platform)
Prerequisites
========
1. Generate SSH key pair type **ssh-rsa** from the host that will connect to
VyOS.
Before proceeding, ensure the following:
- A GCP account with billing enabled.
- Permissions to deploy Marketplace images.
- Access to enable APIs and create resources (e.g., Compute Engine Admin, Network Admin).
- An SSH key pair for VyOS instance access.
- GA Google Cloud Project.
Deployment Steps
========
Step 1: Add SSH Key
-------------------
1. If you dont already have SSH keys, generate an SSH key pair of type ``ssh-rsa`` on your local machine:
Example:
@ -17,42 +30,248 @@ To deploy VyOS on GCP (Google Cloud Platform)
ssh-keygen -t rsa -f ~/.ssh/vyos_gcp -C "vyos@mypc"
.. note:: In name "vyos@mypc" The first value must be "**vyos**". Because
default user is vyos and google api uses this option.
.. note:: In the comment ``vyos@mypc``, the username must start with vyos.
This is because the default user in the VyOS image is ``vyos``, and the Google Cloud API uses this value for SSH access.
2. Open GCP console and navigate to the menu **Metadata**. Choose
**SSH Keys** and click ``edit``.
2. Open GCP console and navigate to the **Compute Engine** > **Metadata** > **SSH Keys**. Choose
**SSH Keys**.
.. figure:: /_static/images/cloud-gcp-01.png
Click **Add item** and paste your public ssh key. Click ``Save``.
3. Click **edit** and **Add item**.
4. Paste your public ssh key and **Save**.
.. figure:: /_static/images/cloud-gcp-02.png
For more information, please visit the official Google Cloud documentation:
2. On marketplace search "VyOS"
https://cloud.google.com/compute/docs/connect/add-ssh-keys
3. Change Deployment name/Zone/Machine type and click ``Deploy``
https://cloud.google.com/compute/docs/connect/create-ssh-keys
.. figure:: /_static/images/cloud-gcp-03.png
4. After few seconds click to ``instance``
Step 2: Create a Service Account (If You Don't Have One)
-------------------------------
.. figure:: /_static/images/cloud-gcp-04.png
1. In the Google Cloud console **IAM & Admin > Service Accounts**.
5. Find out your external IP address
2. Select select a project.
.. figure:: /_static/images/cloud-gcp-05.png
.. figure:: /_static/images/cloud-gcp-proj.png
6. Connect to the instance. SSH key was generated in the first step.
3. Click **Create Service Account**:
- Name: e.g., ``vyos-test``
- Service account ID: e.g., ``vyos-test``
- Description: e.g., ``VyOS Test Service Account``
4. Click **Done**.
.. figure:: /_static/images/cloud-gcp-svc.png
For more information, please visit the official Google Cloud documentation:
https://cloud.google.com/iam/docs/service-accounts-create
https://cloud.google.com/iam/docs/service-account-overview
Step 3: Create VPC Networks and Subnets
-------------------------------
1. In the Google Cloud console **VPC Network > VPC Networks** https://console.cloud.google.com/networking/networks/list
2. Select select a project.
.. figure:: /_static/images/cloud-gcp-proj.png
3. Click **Create VPC Network**.
**Public VPC**:
- Name: e.g., ``vyos-public-vpc``
- Subnet creation mode: ``Custom``
- Subnet name: e.g., ``vyos-public-subnet``
- Region: e.g., ``europe-west1``
- IP range: e.g., ``10.0.1.0/24``
- Leave all other settings at default, then click **Create**.
.. figure:: /_static/images/cloud-gcp-vpc-01.png
.. figure:: /_static/images/cloud-gcp-vpc-02.png
**Private VPC**:
- Name: ``vyos-private-vpc``
- Subnet creation mode: ``Custom``
- Subnet name: ``vyos-private-subnet``
- Region: e.g., ``europe-west1``
- IP range: ``10.0.11.0/24``
- Leave all other settings at default, then click **Create**.
.. figure:: /_static/images/cloud-gcp-vpc-03.png
.. figure:: /_static/images/cloud-gcp-vpc-04.png
4. Add firewall rules to allow specific network traffic from the Internet. By default all incoming traffic from outside a network is blocked.
.. figure:: /_static/images/cloud-gcp-vpc-05.png
.. figure:: /_static/images/cloud-gcp-vpc-06.png
.. figure:: /_static/images/cloud-gcp-vpc-07.png
For more information, please visit the official Google Cloud documentation:
https://cloud.google.com/vpc/docs/create-modify-vpc-networks
Step 4: Deploy VyOS instance from Marketplace
---------
1. Go to the Google Cloud Marketplace page in the Google Cloud console https://console.cloud.google.com/marketplace
2. Choose the project where you want to deploy the VyOS instance.
.. figure:: /_static/images/cloud-gcp-proj.png
3. In the search bar, type ``vyos`` to find the VyOS image in the Marketplace.
.. figure:: /_static/images/cloud-gcp-market-01.png
.. figure:: /_static/images/cloud-gcp-market-02.png
4. On the next page, review details such as support, pricing, and other details.
.. figure:: /_static/images/cloud-gcp-market-03.png
5. Click the ``GET STARTED`` button to start deployment process.
.. figure:: /_static/images/cloud-gcp-market-04.png
.. figure:: /_static/images/cloud-gcp-market-05.png
6. General settings.
- Deployment name: e.g., ``vyos-test-vm``
- Select a Service Account: Select the service account created earlier.
- Image: Select VyOS image for deployment.
- Zone: e.g., ``europe-west1-b``
- Machine type: Choose based on performance and resource needs.
.. figure:: /_static/images/cloud-gcp-vm-01.png
.. figure:: /_static/images/cloud-gcp-vm-02.png
7. Configure the network interfaces.
**Public Network interface:**
Edit the first (default) network interface and select following settings:
- Network: ``vyos-public-vpc``
- Subnetwork: ``vyos-public-subnet``
- External IP: ``Ephemeral``
- Private Network interface:
**Private Network Interface:**
Click **ADD A NETWORK INTERFACE** button to create a second (private) interface, and select following settings:
- Network: ``vyos-private-vpc``
- Subnetwork: ``vyos-private-subnet``
- External IP: ``None``
.. figure:: /_static/images/cloud-gcp-vm-03.png
8. Deployment automation.
- You can use ``cloud-init`` ``User Data`` to automatically inject specific configuration commands into the VyOS instance during deployment.
- Example:
.. code-block:: none
ssh -i ~/.ssh/vyos_gcp vyos@203.0.113.3
vyos@vyos-r1-vm:~$
#cloud-config
vyos_config_commands:
- set system host-name 'VyOS-for-GCP'
- set system login banner pre-login 'Welcome to the VyOS for on GCP'
- set interfaces ethernet eth0 description 'WAN'
- set interfaces ethernet eth1 description 'LAN'
- set interfaces ethernet eth1 address 'dhcp'
- set interfaces ethernet eth1 dhcp-options no-default-route
For more information, please visit the official VyOS documentation:
https://docs.vyos.io/en/stable/automation/cloud-init.html#module-vyos-userdata
.. figure:: /_static/images/cloud-gcp-vm-09.png
9. Click ``Deploy`` button.
.. figure:: /_static/images/cloud-gcp-vm-06.png
.. figure:: /_static/images/cloud-gcp-vm-07.png
Connect to the VyOS instance
-----------
To connect to the VyOS instance, use the SSH key that was generated in the first step.
To retrieve the public IP address, go to the **Google Cloud Console** and navigate to: **Compute Engine** > **VM instances** https://console.cloud.google.com/compute/instances?project=vyos-images
.. figure:: /_static/images/cloud-gcp-vm-08.png
Example:
.. code-block:: none
ssh vyos@35.233.97.132 -i .ssh/vyos_gcp
The authenticity of host '35.233.97.132 (35.233.97.132)' can't be established.
ED25519 key fingerprint is SHA256:KCsCnwCGhwX2ba5RcPUAO3ZUSNzS4sXIkujFoScCd0g.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '35.233.97.132' (ED25519) to the list of known hosts.
Welcome to the VyOS for on GCP
Welcome to VyOS!
┌── ┐
. VyOS 1.4.2
└ ──┘ sagitta
* Documentation: https://docs.vyos.io/en/sagitta
* Project news: https://blog.vyos.io
* Bug reports: https://vyos.dev
You can change this banner using "set system login banner post-login" command.
VyOS is a free software distribution that includes multiple components,
you can check individual component licenses under /usr/share/doc/*/copyright
vyos@VyOS-for-GCP:~$
References
----------
https://console.cloud.google.com/