├── .github └── workflows │ ├── vyos-v1.2.x-crux.yml │ ├── vyos-v1.3.x-equuleus.yml │ └── vyos-v1.4-rolling-release.yml ├── LICENSE ├── README.md ├── patchs ├── packer.json_ssh-host-port_and_wait-time_crux.patch └── packer.json_wait-time_equuleus.patch └── tools ├── VMware-ovftool-4.4.1-16812187-lin.x86_64.bundle └── private_key_for_signing_vmware_image.pem /.github/workflows/vyos-v1.2.x-crux.yml: -------------------------------------------------------------------------------- 1 | name: VyOS v1.2.x LTS Release 2 | 3 | on: 4 | push: 5 | tags: 6 | - 'v1.2.*' 7 | 8 | env: 9 | GIT_CLONE_URL: https://github.com/vyos/vyos-build 10 | DEBIAN_MIRROR: http://ftp.us.debian.org/debian/ 11 | BRANCH: crux 12 | BUILD_ARCH: amd64 13 | BUILD_BY: vyos-build-action@github.com 14 | BUILD_TYPE: release 15 | BUILD_VERSION: 1.2.8 16 | BUILD_QEMU: true 17 | BUILD_QCOW2: true 18 | BUILD_HYPERV: true 19 | BUILD_VMWARE: true 20 | PACKER_JSON_PATCH: true 21 | PACKER_JSON_PATCH_FILE: packer.json_ssh-host-port_and_wait-time_crux.patch 22 | VMWARE_OVFTOOL: VMware-ovftool-4.4.1-16812187-lin.x86_64.bundle 23 | VMWARE_PRIVATE_KEY: private_key_for_signing_vmware_image.pem 24 | ARTIFACTS_DIR: artifacts 25 | WORKING_DIR: vyos-build 26 | STATUS_SUCCESS: "::set-output name=status::success" 27 | 28 | jobs: 29 | build: 30 | runs-on: ubuntu-latest 31 | 32 | container: 33 | image: vyos/vyos-build:crux 34 | options: --workdir /vyos --privileged 35 | 36 | steps: 37 | - name: Checkout 38 | uses: actions/checkout@v2 39 | 40 | - name: Clone Source Code 41 | run: | 42 | git clone -b $BRANCH --single-branch $GIT_CLONE_URL $WORKING_DIR 43 | cd $WORKING_DIR 44 | ./configure --architecture $BUILD_ARCH --build-by $BUILD_BY --build-type $BUILD_TYPE --version $BUILD_VERSION --ova-signing-key $GITHUB_WORKSPACE/tools/$VMWARE_PRIVATE_KEY 45 | mkdir -p ./$ARTIFACTS_DIR 46 | 47 | - name: Build ISO Image 48 | id: iso 49 | working-directory: ./${{ env.WORKING_DIR }} 50 | run: | 51 | make iso && echo $STATUS_SUCCESS 52 | cp -f ./build/vyos-$BUILD_VERSION-$BUILD_ARCH.iso ./$ARTIFACTS_DIR/ 53 | 54 | - name: Build QEMU Image 55 | id: qemu 56 | working-directory: ./${{ env.WORKING_DIR }} 57 | if: steps.iso.outputs.status == 'success' && env.BUILD_QEMU == 'true' 58 | run: | 59 | [ $PACKER_JSON_PATCH = true ] && git apply $GITHUB_WORKSPACE/patchs/$PACKER_JSON_PATCH_FILE 60 | [ -e ./build/live-image-$BUILD_ARCH.hybrid.iso ] && make qemu && echo $STATUS_SUCCESS 61 | cp -f ./packer_build/qemu/vyos_qemu_image.img ./$ARTIFACTS_DIR/vyos-$BUILD_VERSION-$BUILD_ARCH-qemu.img 62 | 63 | - name: Build QCOW2 Image 64 | working-directory: ./${{ env.WORKING_DIR }} 65 | if: steps.qemu.outputs.status == 'success' && env.BUILD_QCOW2 == 'true' 66 | run: | 67 | [ -e ./packer_build/qemu/vyos_qemu_image.img ] && make qcow2 68 | cp -f ./build/VyOS-$(date +%Y%m%d).qcow2 ./$ARTIFACTS_DIR/vyos-$BUILD_VERSION-$BUILD_ARCH-qemu.qcow2 69 | 70 | - name: Build Hyper-V Image 71 | working-directory: ./${{ env.WORKING_DIR }} 72 | if: steps.qemu.outputs.status == 'success' && env.BUILD_HYPERV == 'true' 73 | run: | 74 | [ -e ./packer_build/qemu/vyos_qemu_image.img ] && make hyperv 75 | cp -f ./packer_build/hyperv/vyos_hyperv_image.vhd ./$ARTIFACTS_DIR/vyos-$BUILD_VERSION-$BUILD_ARCH-hyperv.vhd 76 | 77 | - name: Build VMware Image 78 | working-directory: ./${{ env.WORKING_DIR }} 79 | if: steps.qemu.outputs.status == 'success' && env.BUILD_VMWARE == 'true' 80 | run: | 81 | $GITHUB_WORKSPACE/tools/$VMWARE_OVFTOOL --eulas-agreed 82 | [ -e ./packer_build/qemu/vyos_qemu_image.img ] && make vmware 83 | cp -f ./build/vyos_vmware_image-signed.cert ./$ARTIFACTS_DIR/ 84 | cp -f ./build/vyos_vmware_image-signed-disk1.vmdk ./$ARTIFACTS_DIR/ 85 | cp -f ./build/vyos_vmware_image-signed.mf ./$ARTIFACTS_DIR/ 86 | cp -f ./build/vyos_vmware_image-signed.ovf ./$ARTIFACTS_DIR/ 87 | cp -f ./build/vyos_vmware_image-signed.ova ./$ARTIFACTS_DIR/vyos-$BUILD_VERSION-$BUILD_ARCH-vmware-signed.ova 88 | cp -f ./build/vyos_vmware_image.vmdk ./$ARTIFACTS_DIR/vyos-$BUILD_VERSION-$BUILD_ARCH-vmware.vmdk 89 | 90 | - name: Upload Artifacts 91 | uses: actions/upload-artifact@v2 92 | with: 93 | name: vyos-${{ env.BUILD_VERSION }}-${{ env.BUILD_ARCH }}-images 94 | path: ${{ env.WORKING_DIR }}/${{ env.ARTIFACTS_DIR }} 95 | 96 | release: 97 | needs: build 98 | runs-on: ubuntu-latest 99 | 100 | steps: 101 | - name: Download Artifacts 102 | uses: actions/download-artifact@v2 103 | with: 104 | name: vyos-${{ env.BUILD_VERSION }}-${{ env.BUILD_ARCH }}-images 105 | 106 | - name: Release 107 | uses: softprops/action-gh-release@v1 108 | env: 109 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 110 | with: 111 | name: VyOS v${{ env.BUILD_VERSION }} LTS Release 112 | body: VyOS v${{ env.BUILD_VERSION }} LTS Release 113 | draft: false 114 | prerelease: false 115 | files: | 116 | vyos-${{ env.BUILD_VERSION }}-${{ env.BUILD_ARCH }}.iso 117 | vyos-${{ env.BUILD_VERSION }}-${{ env.BUILD_ARCH }}-qemu.img 118 | vyos-${{ env.BUILD_VERSION }}-${{ env.BUILD_ARCH }}-qemu.qcow2 119 | vyos-${{ env.BUILD_VERSION }}-${{ env.BUILD_ARCH }}-hyperv.vhd 120 | vyos-${{ env.BUILD_VERSION }}-${{ env.BUILD_ARCH }}-vmware-signed.ova 121 | vyos-${{ env.BUILD_VERSION }}-${{ env.BUILD_ARCH }}-vmware.vmdk 122 | -------------------------------------------------------------------------------- /.github/workflows/vyos-v1.3.x-equuleus.yml: -------------------------------------------------------------------------------- 1 | name: VyOS v1.3.x LTS Release 2 | 3 | on: 4 | push: 5 | tags: 6 | - 'v1.3.*' 7 | 8 | env: 9 | GIT_CLONE_URL: https://github.com/vyos/vyos-build 10 | DEBIAN_MIRROR: http://ftp.us.debian.org/debian/ 11 | BRANCH: equuleus 12 | BUILD_ARCH: amd64 13 | BUILD_BY: vyos-build-action@github.com 14 | BUILD_TYPE: release 15 | BUILD_VERSION: 1.3.2 16 | BUILD_QEMU: true 17 | BUILD_QCOW2: true 18 | BUILD_HYPERV: true 19 | BUILD_VMWARE: true 20 | PACKER_JSON_PATCH: false 21 | PACKER_JSON_PATCH_FILE: packer.json_wait-time_equuleus.patch 22 | VMWARE_OVFTOOL: VMware-ovftool-4.4.1-16812187-lin.x86_64.bundle 23 | VMWARE_PRIVATE_KEY: private_key_for_signing_vmware_image.pem 24 | ARTIFACTS_DIR: artifacts 25 | WORKING_DIR: vyos-build 26 | STATUS_SUCCESS: "::set-output name=status::success" 27 | 28 | jobs: 29 | build: 30 | runs-on: ubuntu-latest 31 | 32 | container: 33 | image: vyos/vyos-build:equuleus 34 | options: --workdir /vyos --privileged 35 | 36 | steps: 37 | - name: Checkout 38 | uses: actions/checkout@v2 39 | 40 | - name: Clone Source Code 41 | run: | 42 | git clone -b $BRANCH --single-branch $GIT_CLONE_URL $WORKING_DIR 43 | cd $WORKING_DIR 44 | ./configure --architecture $BUILD_ARCH --build-by $BUILD_BY --build-type $BUILD_TYPE --version $BUILD_VERSION 45 | mkdir -p ./$ARTIFACTS_DIR 46 | 47 | - name: Build ISO Image 48 | id: iso 49 | working-directory: ./${{ env.WORKING_DIR }} 50 | run: | 51 | make iso && echo $STATUS_SUCCESS 52 | cp -f ./build/vyos-$BUILD_VERSION-$BUILD_ARCH.iso ./$ARTIFACTS_DIR/ 53 | 54 | - name: Build QEMU Image 55 | id: qemu 56 | working-directory: ./${{ env.WORKING_DIR }} 57 | if: steps.iso.outputs.status == 'success' && env.BUILD_QEMU == 'true' 58 | run: | 59 | [ $PACKER_JSON_PATCH = true ] && git apply $GITHUB_WORKSPACE/patchs/$PACKER_JSON_PATCH_FILE 60 | [ -e ./build/live-image-$BUILD_ARCH.hybrid.iso ] && make qemu && echo $STATUS_SUCCESS 61 | cp -f ./packer_build/qemu/vyos_qemu_image.img ./$ARTIFACTS_DIR/vyos-$BUILD_VERSION-$BUILD_ARCH-qemu.img 62 | cp -f ./build/vyos-$BUILD_VERSION-$BUILD_ARCH.qcow2 ./$ARTIFACTS_DIR/vyos-$BUILD_VERSION-$BUILD_ARCH-qemu.qcow2 63 | 64 | - name: Build Hyper-V Image 65 | working-directory: ./${{ env.WORKING_DIR }} 66 | if: steps.qemu.outputs.status == 'success' && env.BUILD_HYPERV == 'true' 67 | run: | 68 | [ -e ./packer_build/qemu/vyos_qemu_image.img ] && make hyperv 69 | cp -f ./packer_build/hyperv/vyos_hyperv_image.vhd ./$ARTIFACTS_DIR/vyos-$BUILD_VERSION-$BUILD_ARCH-hyperv.vhd 70 | 71 | - name: Build VMware Image 72 | working-directory: ./${{ env.WORKING_DIR }} 73 | if: steps.qemu.outputs.status == 'success' && env.BUILD_VMWARE == 'true' 74 | run: | 75 | export PRIVATE_KEY_PATH="$GITHUB_WORKSPACE/tools/$VMWARE_PRIVATE_KEY" 76 | $GITHUB_WORKSPACE/tools/$VMWARE_OVFTOOL --eulas-agreed 77 | [ -e ./packer_build/qemu/vyos_qemu_image.img ] && make vmware 78 | cp -f ./build/vyos_vmware_image-signed.cert ./$ARTIFACTS_DIR/ 79 | cp -f ./build/vyos_vmware_image-signed-disk1.vmdk ./$ARTIFACTS_DIR/ 80 | cp -f ./build/vyos_vmware_image-signed.mf ./$ARTIFACTS_DIR/ 81 | cp -f ./build/vyos_vmware_image-signed.ovf ./$ARTIFACTS_DIR/ 82 | cp -f ./build/vyos_vmware_image-signed.ova ./$ARTIFACTS_DIR/vyos-$BUILD_VERSION-$BUILD_ARCH-vmware-signed.ova 83 | cp -f ./build/vyos_vmware_image.vmdk ./$ARTIFACTS_DIR/vyos-$BUILD_VERSION-$BUILD_ARCH-vmware.vmdk 84 | 85 | - name: Upload Artifacts 86 | uses: actions/upload-artifact@v2 87 | with: 88 | name: vyos-${{ env.BUILD_VERSION }}-${{ env.BUILD_ARCH }}-images 89 | path: ${{ env.WORKING_DIR }}/${{ env.ARTIFACTS_DIR }} 90 | 91 | release: 92 | needs: build 93 | runs-on: ubuntu-latest 94 | 95 | steps: 96 | - name: Download Artifacts 97 | uses: actions/download-artifact@v2 98 | with: 99 | name: vyos-${{ env.BUILD_VERSION }}-${{ env.BUILD_ARCH }}-images 100 | 101 | - name: Release 102 | uses: softprops/action-gh-release@v1 103 | env: 104 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 105 | with: 106 | name: VyOS v${{ env.BUILD_VERSION }} LTS Release 107 | body: VyOS v${{ env.BUILD_VERSION }} LTS Release 108 | draft: false 109 | prerelease: false 110 | files: | 111 | vyos-${{ env.BUILD_VERSION }}-${{ env.BUILD_ARCH }}.iso 112 | vyos-${{ env.BUILD_VERSION }}-${{ env.BUILD_ARCH }}-qemu.img 113 | vyos-${{ env.BUILD_VERSION }}-${{ env.BUILD_ARCH }}-qemu.qcow2 114 | vyos-${{ env.BUILD_VERSION }}-${{ env.BUILD_ARCH }}-hyperv.vhd 115 | vyos-${{ env.BUILD_VERSION }}-${{ env.BUILD_ARCH }}-vmware-signed.ova 116 | vyos-${{ env.BUILD_VERSION }}-${{ env.BUILD_ARCH }}-vmware.vmdk 117 | -------------------------------------------------------------------------------- /.github/workflows/vyos-v1.4-rolling-release.yml: -------------------------------------------------------------------------------- 1 | name: VyOS v1.4 Rolling Release 2 | 3 | on: 4 | schedule: 5 | - cron: 0 3 * * * 6 | 7 | env: 8 | GIT_CLONE_URL: https://github.com/vyos/vyos-build 9 | BRANCH: current 10 | ARCHITECTURE: amd64 11 | BUILD_BY: vyos-build-action@github.com 12 | BUILD_TYPE: release 13 | VERSION: 1.4-rolling 14 | DEBIAN_MIRROR: http://ftp.us.debian.org/debian/ 15 | 16 | jobs: 17 | build: 18 | runs-on: ubuntu-latest 19 | container: 20 | image: vyos/vyos-build:current 21 | options: --workdir /vyos --privileged 22 | 23 | steps: 24 | - name: Clone source code 25 | run: git clone -b $BRANCH --single-branch $GIT_CLONE_URL 26 | 27 | - name: Build ISO 28 | working-directory: ./vyos-build 29 | run: | 30 | sudo make clean 31 | sudo ./build-vyos-image iso --architecture $ARCHITECTURE --build-by $BUILD_BY --build-type $BUILD_TYPE --version $VERSION-$(date +%Y%m%d%H%M) 32 | 33 | - name: Upload artifact 34 | uses: actions/upload-artifact@v4 35 | with: 36 | name: vyos-${{ env.VERSION }}-${{ env.ARCHITECTURE }}-iso 37 | path: vyos-build/build/vyos-${{ env.VERSION }}-*.iso 38 | 39 | release: 40 | needs: build 41 | runs-on: ubuntu-latest 42 | 43 | steps: 44 | - name: Checkout 45 | uses: actions/checkout@v4 46 | 47 | - name: Download artifact 48 | uses: actions/download-artifact@v4 49 | with: 50 | name: vyos-${{ env.VERSION }}-${{ env.ARCHITECTURE }}-iso 51 | path: vyos-${{ env.VERSION }}-${{ env.ARCHITECTURE }}-iso 52 | 53 | - name: Upload release asset 54 | env: 55 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 56 | run: | 57 | asset=$(find ./vyos-${{ env.VERSION }}-${{ env.ARCHITECTURE }}-iso/ -name "vyos-${{ env.VERSION }}-*.iso" | xargs) 58 | tag_name="v${{ env.VERSION }}" 59 | gh release upload "$tag_name" "$asset" 60 | 61 | delete_old_workflow_runs: 62 | needs: release 63 | runs-on: ubuntu-latest 64 | 65 | steps: 66 | - name: Delete old workflow runs 67 | uses: GitRML/delete-workflow-runs@main 68 | with: 69 | retain_days: 31 70 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2020 9l 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # VyOS ISO Automation Build 2 | 3 | Automate build VyOS v1.2 LTS, v1.3 LTS Release and v1.4 Rolling Release ISO files. 4 | 5 | ## About this repository 6 | 7 | Use the official build script provided by VyOS [https://github.com/vyos/vyos-build](https://github.com/vyos/vyos-build). 8 | 9 | Manual build VyOS instructions can be found in VyOS official [Documentation - Build VyOS](https://docs.vyos.io/en/latest/contributing/build-vyos.html). 10 | 11 | ## Github Action workflow files 12 | 13 | Github Action automate the build process and save you some times. 14 | 15 | There are two workflow files: 16 | 17 | [vyos-v1.2.x-crux.yml](.github/workflows/vyos-v1.2.x-crux.yml) 18 | 19 | For VyOS v1.2.x LTS release, action trigger by a tag push. It will build the ISO and VM image files, create a release and upload the release asset. 20 | 21 | [vyos-v1.3.x-equuleus.yml](.github/workflows/vyos-v1.3.x-equuleus.yml) 22 | 23 | For VyOS v1.3.x LTS release, action trigger by a tag push. It will build the ISO and VM image files, create a release and upload the release asset. 24 | 25 | [vyos-v1.4-rolling-release.yml](.github/workflows/vyos-v1.4-rolling-release.yml) 26 | 27 | For VyOs v1.4 rolling release, action trigger on schedule every day. ISO file can be found in the Action Artifacts section. 28 | 29 | You can edit the workflow files to modify the trigger conditions to suit your needs. 30 | 31 | ## Generate your own private key for signing vmware image 32 | 33 | ```bash 34 | openssl req -x509 -nodes -sha256 -newkey rsa:2048 -keyout private_key_for_signing_vmware_image.pem -out private_key_for_signing_vmware_image.pem 35 | ``` 36 | -------------------------------------------------------------------------------- /patchs/packer.json_ssh-host-port_and_wait-time_crux.patch: -------------------------------------------------------------------------------- 1 | diff --git a/scripts/packer.json b/scripts/packer.json 2 | index 53b6a1c..08e265b 100644 3 | --- a/scripts/packer.json 4 | +++ b/scripts/packer.json 5 | @@ -16,8 +16,8 @@ 6 | "disk_size": 4096, 7 | "format": "qcow2", 8 | "headless": true, 9 | - "ssh_host_port_min": 2222, 10 | - "ssh_host_port_max": 2229, 11 | + "host_port_min": 2222, 12 | + "host_port_max": 2229, 13 | "ssh_username": "vyos", 14 | "ssh_password": "vyos", 15 | "ssh_port": 22, 16 | @@ -25,36 +25,36 @@ 17 | "vm_name": "vyos_qemu_image.img", 18 | "net_device": "virtio-net", 19 | "disk_interface": "virtio", 20 | - "boot_wait": "5s", 21 | + "boot_wait": "15s", 22 | "boot_command": 23 | [ 24 | - "", 25 | - "vyos", 26 | - "vyos", 27 | - "install image", 28 | - "", 29 | - "", 30 | - "", 31 | - "Yes", 32 | - "", 33 | - "", 34 | - "", 35 | - "vyos", 36 | - "vyos", 37 | - "", 38 | - "reboot", 39 | - "Yes", 40 | - "vyos", 41 | - "vyos", 42 | - "configure", 43 | - "set interface ethernet eth0 address dhcp", 44 | - "set service ssh", 45 | - "commit", 46 | - "save", 47 | - "delete interface ethernet eth0 hw-id", 48 | - "commit", 49 | - "save", 50 | - "exit" 51 | + "", 52 | + "vyos", 53 | + "vyos", 54 | + "install image", 55 | + "", 56 | + "", 57 | + "", 58 | + "Yes", 59 | + "", 60 | + "", 61 | + "", 62 | + "vyos", 63 | + "vyos", 64 | + "", 65 | + "reboot", 66 | + "Yes", 67 | + "vyos", 68 | + "vyos", 69 | + "configure", 70 | + "set interface ethernet eth0 address dhcp", 71 | + "set service ssh", 72 | + "commit", 73 | + "save", 74 | + "delete interface ethernet eth0 hw-id", 75 | + "commit", 76 | + "save", 77 | + "exit" 78 | ] 79 | } 80 | ] 81 | -------------------------------------------------------------------------------- /patchs/packer.json_wait-time_equuleus.patch: -------------------------------------------------------------------------------- 1 | diff --git a/scripts/packer.json b/scripts/packer.json 2 | index f1e4979..da8e06a 100644 3 | --- a/scripts/packer.json 4 | +++ b/scripts/packer.json 5 | @@ -25,36 +25,36 @@ 6 | "vm_name": "vyos_qemu_image.img", 7 | "net_device": "virtio-net", 8 | "disk_interface": "virtio", 9 | - "boot_wait": "5s", 10 | + "boot_wait": "15s", 11 | "boot_command": 12 | [ 13 | - "", 14 | - "vyos", 15 | - "vyos", 16 | - "install image", 17 | - "", 18 | - "", 19 | - "", 20 | - "Yes", 21 | - "", 22 | - "", 23 | - "", 24 | - "vyos", 25 | - "vyos", 26 | - "", 27 | - "reboot", 28 | - "Yes", 29 | - "vyos", 30 | - "vyos", 31 | - "configure", 32 | - "set interface ethernet eth0 address dhcp", 33 | - "set service ssh", 34 | - "commit", 35 | - "save", 36 | - "delete interface ethernet eth0 hw-id", 37 | - "commit", 38 | - "save", 39 | - "exit" 40 | + "", 41 | + "vyos", 42 | + "vyos", 43 | + "install image", 44 | + "", 45 | + "", 46 | + "", 47 | + "Yes", 48 | + "", 49 | + "", 50 | + "", 51 | + "vyos", 52 | + "vyos", 53 | + "", 54 | + "reboot", 55 | + "Yes", 56 | + "vyos", 57 | + "vyos", 58 | + "configure", 59 | + "set interface ethernet eth0 address dhcp", 60 | + "set service ssh", 61 | + "commit", 62 | + "save", 63 | + "delete interface ethernet eth0 hw-id", 64 | + "commit", 65 | + "save", 66 | + "exit" 67 | ] 68 | } 69 | ] 70 | -------------------------------------------------------------------------------- /tools/VMware-ovftool-4.4.1-16812187-lin.x86_64.bundle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/9l/vyos-build-action/fd83a9d5e5bf98ec51107f8cab6b0165c6fecbf2/tools/VMware-ovftool-4.4.1-16812187-lin.x86_64.bundle -------------------------------------------------------------------------------- /tools/private_key_for_signing_vmware_image.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQChx+HrAUviM9bg 3 | yTNy/NaC2Ww9KpGgulSFp/QDEoasfjU0UiCl8uHyhjTbo/qpbIeaM+vixUX1i1m6 4 | b7+PddbUCuayxXK6ZzWj0l9J/5hz6DjGSKnE12LlS7L+cnR6SMu1Gb/e11O+wUYY 5 | cEZuWNuatNyrQVr1cbHPCEvu0wmZxr1ALB889XEtWMnrUQG90eRdAaeu9/kZDGSV 6 | m9jDUx1eb+jhwDhoyBa2L7ihEI0eHSjoKA8dDamCrQwM5J6Jp0KgeQsqa5jf6ncf 7 | mXQBoQYu5PjQ0BhEhaeZtnI7sxEqI3C0ezeoJjRjwd5ZPEtpL7gFdHHcZ1iJ1b2d 8 | yyNgiug3UPL4Qa6wzJnDOXQwhzzELpcvkhwM7WWfD2OzH8T/b3krapPF1MNz5Z+a 9 | BYwvx1257vR10a+8Won+c8/ZGvvIA14PENa8CKfoEU3ZXywpXhLc/QvI+eTgmvYi 10 | PMyyzZ/lCWYYQhmwWlUUJMEhdkur6ET5T2R0+/sPxYw1jhNhEYsAwQ+OAc/DUJr0 11 | IuQbv/xZwrTCVzpGzMTY41hlDSON9V6MXGGDHfdG7caJwUOOZDEu+VVLRpzMrUp1 12 | 59gZ+DZeX+xNAOZkJ08QhCu8V7dVbXmReQ/rl6gf6iBg1dGUUeKGBEz2gj+GcpYu 13 | 65OXjphCm8IRzz3riMXAx7VqIH7lLQIDAQABAoICAFS14Om4yA8trboOIE55bake 14 | R7rPa2mJp3BEvVROgw4XF6zJxCagwwbGly7a8gl8tpRb04vuV+92hAlHMjrgLRji 15 | jGHXWXeZS1D4esS4fQ9T7UaGDb7wOOxvcs4hCDRvoZq2XO1GOqeLdDSftYFaLcMY 16 | KOPTWNlkKwKJCZmID2Lh2X6cm87DhfuEnlYFGLBYEwdQMok/dsNS5eggrqO4BYzJ 17 | dFug1uimvJ2w5zAPBpVaF21YbHF+EeBG1CR8ITdayVxVhS81H9s/XhjBtSiVNDOh 18 | 2VcdX1eh1Fx8V9xCqx4xaHZYfpAhURVbEh4PoDz3q5fPnT8XLhkePic9ksyeb3CS 19 | Pm+ziVhyUnsryKalNKdb5o8Nxr7tZC15FdC6zOcRDXJuAS2ynagAMgWs2AXECeCG 20 | dMPTA9dOeZXqkdCfIlAvIcJRc7/Bu+Ab9jTHYwTPysIUQ+0csxG4VMi1/kZhX+1c 21 | QyEpskfsNVBVkxHW2i6RpkPvkuq0GDh4WDpy3XPlXyO4Naz8cPVE9hPWyQruglPo 22 | lyD7tyevCarrkBY8MdtuycTO4cSKkEALv6VbDBsbc+OZsp7eFcekNsfxYy4RRt0j 23 | /GzFm8QhXGHHHlTLYXLS3Er0VNZQFJFUuVfvQDD/oB+wwiGH0O4s9jO3bFQt04zw 24 | v+Lbn4Aj6wcQBlwwSjnRAoIBAQDTgJn+2eKPSK/Pl4cK8blXmouEly0TS0NzODVo 25 | vAE+4kUffNS3GNIfRtJ4wVizxIbBMfP3l4OXCDutLOEm7tERc71hyMFLFnsuUxmL 26 | UhtnNMctr3dOkE4ijk4FZgPSW5/zjUt2iI5oU3lTRC53fbMNA6ChBe78SxhjIQCR 27 | eMcxTN78WfBhHXJQo1C9shmqD8HhH53yE7cj+6bLexD72qsM9H1M3/0ZXVrj0Kxk 28 | 7uH8VMQGmnka0w7Oa8QCXbKgUxMWslgL4AOwWr5AHy4pvDASwKtGVK/OFyvHp9eu 29 | pt1zLiDN2rB9NLvyVCi/Q2BnGTmfmR+MSL+r/UnCxHCGYo7LAoIBAQDD0U4421c9 30 | JUn5fBSodkbYMi6g8lLLugMQfiKboSohRw0AEvIK3ziLRxmeiN+j6KkTSCUcIjsS 31 | 72Qmsc4j1TpfkF6cTKo4ZL2bG1RUtCfniGZTkWyribMevyJJq8LT8yS8ri1pdMWw 32 | vH2VRliHDiXjAeyGsK/IV3St/8LTESLSZ2w5jb17O4Jmrrt/9J0jpC7DCIXcuD78 33 | D2UzUzbKxXjwq8zPa2qIVx61L7eAyOKonzjsiUgnhByCWMze63kBX7XLcBTe/637 34 | O458vqw+8YVZLVo2buHfJiysIlJ7KpfWXvAVOHSs58YCxs701wHQRmhK7qQsUjcW 35 | M7f1eTHFgqTnAoIBAQCgOMjwHkEaSHcfLOwZZ1r/uUy96gQ0nIyBSXB0YhATgjfZ 36 | Daja98ud8/nXjqjSritjSaNGyhnenVcP7nK2Gq54qRQrcnizmFlCk6NDPrURrxLA 37 | Ui9wbbMzTFhgkJKOleiLCVvEdNhkwe+kG3+T975fOoNB2Ivdxkm4NrUGftdvSouV 38 | 4dBO0Y7a9Y1h1vzILt2x3FC7pSHU+Xu2pAkOse1oiAIv7XL/9w+2i0s9vxWlINXL 39 | JtRddMu/pjW7kR2ThLtuMzat8Er7GxMK4lQHO8+zNQ/K3La9yiHZQxYJ8dDKw4QI 40 | TgXrI7rJbeXcVn8+OwbDF62liSricKOjD0srEpiXAoIBABiN9HsYthXKyT3pm0WM 41 | n1GY6VPxTwSQ7LVyu7A8Q2Ys3Kp3tbY7S4HbhpDkpPaOxDTQxSaD/FhhgHOBtFG1 42 | +T3mgpai3m135HbAtJByjtZvujUcdT4FZFqkqQ4H5cRiJucqCDPDGs8Qs8a2LX+x 43 | /Ho80YYKPeCnZtAy1CFXcsBji6Sj63C6g52Qp55h9Bp2Cg8W0IJe8Db3Tz9iXeqL 44 | XKEBSgtwcslp80XRF/ekORff72lpxYx++nw12mrRqDjN4aQDB/r2oMByNWnbFwpF 45 | iu0lzLwqp1QuG0fyfdlH/AY7nWtryuWrop7Sgz0cgPO3AHj0980++f1kutqjOeSE 46 | f10CggEBAIx/LW/Fp+PI+MROs4Fv+ShFcelAe1wUwPPOTM288GztJipjdHXW5JfE 47 | 8xF1RDOHS3+/FKxFc1I4X9VUIqxJEwPcgtaCNf9swCehxsDZ9ayRYDBdpsu+7wr7 48 | si3SnbqdFpB/30qJnvg6Z+dQBoDn9pbKsqFym/R64Ty1MUE5ej0umdI6rQ5bxYco 49 | Nii1oSO6Tv38g2i4lG0gH2UEzxUsOUix04Qbw+ngPwwdMZJ3KWV2uHBZMLXuEQER 50 | F7F8MwnmKrs/ULZMDsNyQwv39AGCTFtfrwIoKf+pEcBBWpDxsIUzuP9cnDKMzdKt 51 | NFT0qH9cCUwXoc/cwjqEkxcMeH0sorA= 52 | -----END PRIVATE KEY----- 53 | -----BEGIN CERTIFICATE----- 54 | MIIF/TCCA+WgAwIBAgIUQdOoQ3Cs7Wj79DPWLAY+BWnYG1YwDQYJKoZIhvcNAQEL 55 | BQAwgY0xCzAJBgNVBAYTAkNOMRowGAYDVQQKDBF2eW9zLWJ1aWxkLWFjdGlvbjEa 56 | MBgGA1UECwwRdnlvcy1idWlsZC1hY3Rpb24xGjAYBgNVBAMMEXZ5b3MtYnVpbGQt 57 | YWN0aW9uMSowKAYJKoZIhvcNAQkBFhs5bEB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5j 58 | b20wHhcNMjEwOTE1MTQ1NDM4WhcNMjExMDE1MTQ1NDM4WjCBjTELMAkGA1UEBhMC 59 | Q04xGjAYBgNVBAoMEXZ5b3MtYnVpbGQtYWN0aW9uMRowGAYDVQQLDBF2eW9zLWJ1 60 | aWxkLWFjdGlvbjEaMBgGA1UEAwwRdnlvcy1idWlsZC1hY3Rpb24xKjAoBgkqhkiG 61 | 9w0BCQEWGzlsQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbTCCAiIwDQYJKoZIhvcN 62 | AQEBBQADggIPADCCAgoCggIBAKHH4esBS+Iz1uDJM3L81oLZbD0qkaC6VIWn9AMS 63 | hqx+NTRSIKXy4fKGNNuj+qlsh5oz6+LFRfWLWbpvv4911tQK5rLFcrpnNaPSX0n/ 64 | mHPoOMZIqcTXYuVLsv5ydHpIy7UZv97XU77BRhhwRm5Y25q03KtBWvVxsc8IS+7T 65 | CZnGvUAsHzz1cS1YyetRAb3R5F0Bp673+RkMZJWb2MNTHV5v6OHAOGjIFrYvuKEQ 66 | jR4dKOgoDx0NqYKtDAzknomnQqB5CyprmN/qdx+ZdAGhBi7k+NDQGESFp5m2cjuz 67 | ESojcLR7N6gmNGPB3lk8S2kvuAV0cdxnWInVvZ3LI2CK6DdQ8vhBrrDMmcM5dDCH 68 | PMQuly+SHAztZZ8PY7MfxP9veStqk8XUw3Pln5oFjC/HXbnu9HXRr7xaif5zz9ka 69 | +8gDXg8Q1rwIp+gRTdlfLCleEtz9C8j55OCa9iI8zLLNn+UJZhhCGbBaVRQkwSF2 70 | S6voRPlPZHT7+w/FjDWOE2ERiwDBD44Bz8NQmvQi5Bu//FnCtMJXOkbMxNjjWGUN 71 | I431XoxcYYMd90btxonBQ45kMS75VUtGnMytSnXn2Bn4Nl5f7E0A5mQnTxCEK7xX 72 | t1VteZF5D+uXqB/qIGDV0ZRR4oYETPaCP4Zyli7rk5eOmEKbwhHPPeuIxcDHtWog 73 | fuUtAgMBAAGjUzBRMB0GA1UdDgQWBBQyhtpWC/Y8lahY41esnrB6bl2p5zAfBgNV 74 | HSMEGDAWgBQyhtpWC/Y8lahY41esnrB6bl2p5zAPBgNVHRMBAf8EBTADAQH/MA0G 75 | CSqGSIb3DQEBCwUAA4ICAQAaIqA/3qhDN1apr6iQkb9xGsxxXTCbWlmlCNDgR9yG 76 | n8kSVP4RpN8e0dkuve+rMX0ClnO4GqUdQR6tzGG/toxUh1BID2AQQXsQX2SfzePb 77 | Z29074j9FNi1WxyRmSHSeQkp/4Ur9IgvBmgLzSwmXnjcJZbCd8YrnJdFkyCUlYVC 78 | 2uiI2mu2PyetyY+4ElkKGx/I0T3dAWMLYmow3oMNVsIjA15/MC6+RVdweKCIC64+ 79 | dQvXZXw9DsAKqOCjj+PBsDsZ7MybCSIau9FgS0B3DE3dqY2eO6xdQ/b35PSZKr1G 80 | ERICH/DF/mQr9hHoXPAmQRVDXqUmb1h5vnPt9fzy46jR8pPz2vJyS9Ykwt1Y5NpD 81 | fbeLfYZDnJ/nBnCapnS3ROqXpZgJC/rgTBFRN+Y0nI1wow2B+wUQN6elNNXQ03LF 82 | kw72AbA1nyQnJwD0XB3sXZMupohG31G4CFZh2x4UAYfdNzsQJSuimzpBShxZJatb 83 | AGl5moGpT8T3AA5FsulZTEgJniDbpM4Jf8HeCOPhoXjWAwueXit5yixiO6PB8szO 84 | QXYGHFi9I7svfXVPHi0S/oLBCDh7L2sPykIwTxzU3mBsXfk8XaqMFlgGDhUqmoxN 85 | l0lCZgZ78U1d4cq42eipgo6k3xsHZVVE6X9IrOYPXf3ZIBJCpuHYse4iKCJehM+w 86 | JA== 87 | -----END CERTIFICATE----- 88 | --------------------------------------------------------------------------------