mirror of
https://github.com/vyos/vyos-documentation.git
synced 2025-10-26 08:41:46 +01:00
278 lines
7.6 KiB
ReStructuredText
278 lines
7.6 KiB
ReStructuredText
#####################
|
||
Google Cloud Platform
|
||
#####################
|
||
|
||
This guide provides step-by-step instructions for deploying a VyOS instance with two NICs and the required resources on Google Cloud Platform (GCP).
|
||
|
||
Prerequisites
|
||
========
|
||
|
||
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:
|
||
|
||
.. code-block:: none
|
||
|
||
ssh-keygen -t rsa -f ~/.ssh/vyos_gcp -C "vyos@mypc"
|
||
|
||
|
||
.. 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 **Compute Engine** > **Metadata** > **SSH Keys**. Choose
|
||
**SSH Keys**.
|
||
|
||
.. figure:: /_static/images/cloud-gcp-01.png
|
||
|
||
|
||
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:
|
||
|
||
https://cloud.google.com/compute/docs/connect/add-ssh-keys
|
||
|
||
https://cloud.google.com/compute/docs/connect/create-ssh-keys
|
||
|
||
|
||
Step 2: Create a Service Account (If You Don't Have One)
|
||
-------------------------------
|
||
|
||
1. In the Google Cloud console **IAM & Admin > Service Accounts**.
|
||
|
||
2. Select select a project.
|
||
|
||
.. figure:: /_static/images/cloud-gcp-proj.png
|
||
|
||
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
|
||
|
||
#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:~$
|
||
|
||
|