Merge pull request #1627 from aslanvyos/sagitta
Rewritten VyOS deployment for GCP
BIN
docs/_static/images/cloud-azure-vm-05.png
vendored
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 78 KiB |
BIN
docs/_static/images/cloud-azure-vnet-06.png
vendored
Executable file
|
After Width: | Height: | Size: 60 KiB |
BIN
docs/_static/images/cloud-gcp-03.png
vendored
|
Before Width: | Height: | Size: 104 KiB |
BIN
docs/_static/images/cloud-gcp-04.png
vendored
|
Before Width: | Height: | Size: 19 KiB |
BIN
docs/_static/images/cloud-gcp-05.png
vendored
|
Before Width: | Height: | Size: 25 KiB |
BIN
docs/_static/images/cloud-gcp-market-01.png
vendored
Executable file
|
After Width: | Height: | Size: 110 KiB |
BIN
docs/_static/images/cloud-gcp-market-02.png
vendored
Executable file
|
After Width: | Height: | Size: 36 KiB |
BIN
docs/_static/images/cloud-gcp-market-03.png
vendored
Executable file
|
After Width: | Height: | Size: 112 KiB |
BIN
docs/_static/images/cloud-gcp-market-04.png
vendored
Executable file
|
After Width: | Height: | Size: 82 KiB |
BIN
docs/_static/images/cloud-gcp-market-05.png
vendored
Executable file
|
After Width: | Height: | Size: 44 KiB |
BIN
docs/_static/images/cloud-gcp-proj.png
vendored
Executable file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
docs/_static/images/cloud-gcp-svc.png
vendored
Executable file
|
After Width: | Height: | Size: 72 KiB |
BIN
docs/_static/images/cloud-gcp-vm-01.png
vendored
Executable file
|
After Width: | Height: | Size: 72 KiB |
BIN
docs/_static/images/cloud-gcp-vm-02.png
vendored
Executable file
|
After Width: | Height: | Size: 34 KiB |
BIN
docs/_static/images/cloud-gcp-vm-03.png
vendored
Executable file
|
After Width: | Height: | Size: 41 KiB |
BIN
docs/_static/images/cloud-gcp-vm-04.png
vendored
Executable file
|
After Width: | Height: | Size: 30 KiB |
BIN
docs/_static/images/cloud-gcp-vm-06.png
vendored
Executable file
|
After Width: | Height: | Size: 23 KiB |
BIN
docs/_static/images/cloud-gcp-vm-07.png
vendored
Executable file
|
After Width: | Height: | Size: 36 KiB |
BIN
docs/_static/images/cloud-gcp-vm-08.png
vendored
Executable file
|
After Width: | Height: | Size: 40 KiB |
BIN
docs/_static/images/cloud-gcp-vm-09.png
vendored
Executable file
|
After Width: | Height: | Size: 53 KiB |
BIN
docs/_static/images/cloud-gcp-vpc-01.png
vendored
Executable file
|
After Width: | Height: | Size: 69 KiB |
BIN
docs/_static/images/cloud-gcp-vpc-02.png
vendored
Executable file
|
After Width: | Height: | Size: 62 KiB |
BIN
docs/_static/images/cloud-gcp-vpc-03.png
vendored
Executable file
|
After Width: | Height: | Size: 70 KiB |
BIN
docs/_static/images/cloud-gcp-vpc-04.png
vendored
Executable file
|
After Width: | Height: | Size: 66 KiB |
BIN
docs/_static/images/cloud-gcp-vpc-05.png
vendored
Executable file
|
After Width: | Height: | Size: 71 KiB |
BIN
docs/_static/images/cloud-gcp-vpc-06.png
vendored
Executable file
|
After Width: | Height: | Size: 38 KiB |
BIN
docs/_static/images/cloud-gcp-vpc-07.png
vendored
Executable file
|
After Width: | Height: | Size: 35 KiB |
@ -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 don’t 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/
|
||||
|
||||