From 79d267ee7657e60ce8ee3672cca53bcdeefbc1e0 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Wed, 18 Nov 2020 15:34:40 +0300 Subject: [PATCH 1/2] Add support for building libvirt Vagrant boxes Note: This commit adds Vagrantfile pointing to magmafbc Vagrant cloud account, which does not have images built yet Signed-off-by: Matthew Mosesohn --- cwf/gateway/Vagrantfile | 21 +++ lte/gateway/Vagrantfile | 74 +++++++++- orc8r/tools/packer/magma-dev-libvirt.json | 123 +++++++++++++++++ .../tools/packer/magma-dev-libvirt.json-back | 128 ++++++++++++++++++ orc8r/tools/packer/magma-libvirt.seed | 88 ++++++++++++ orc8r/tools/packer/magma-test-libvirt.json | 123 +++++++++++++++++ .../tools/packer/magma-trfserver-libvirt.json | 101 ++++++++++++++ .../packer/magma-trfserver-virtualbox.json | 3 +- 8 files changed, 654 insertions(+), 7 deletions(-) create mode 100644 orc8r/tools/packer/magma-dev-libvirt.json create mode 100644 orc8r/tools/packer/magma-dev-libvirt.json-back create mode 100644 orc8r/tools/packer/magma-libvirt.seed create mode 100644 orc8r/tools/packer/magma-test-libvirt.json create mode 100644 orc8r/tools/packer/magma-trfserver-libvirt.json diff --git a/cwf/gateway/Vagrantfile b/cwf/gateway/Vagrantfile index d13c38359773..dc8add402cf6 100644 --- a/cwf/gateway/Vagrantfile +++ b/cwf/gateway/Vagrantfile @@ -44,6 +44,27 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| vb.customize ["modifyvm", :id, "--cpus", "4"] vb.customize ["modifyvm", :id, "--nicpromisc2", "allow-all"] end + + config.vm.provider :libvirt do |domain, override| + override.vm.synced_folder "../..", "/home/vagrant/magma", type: 'nfs', linux__nfs_options: ['rw','no_subtree_check', 'no_root_squash'] + domain.uri = "qemu+unix:///system" + domain.memory = 4096 + domain.cpus = 4 + domain.driver = "kvm" + domain.host = "localhost" + domain.connect_via_ssh = false + domain.username = $user + domain.storage_pool_name = "default" + domain.nic_model_type = "virtio" + domain.management_network_name = "magma-mgmt-net" + domain.management_network_address = "172.17.2.0/24" + domain.nested = true + domain.cpu_mode = "host-passthrough" + domain.volume_cache = "unsafe" + domain.disk_bus = "virtio" + domain.graphics_ip = "0.0.0.0" + end + cwag.vm.provision "ansible" do |ansible| ansible.host_key_checking = false ansible.playbook = "deploy/cwag_dev.yml" diff --git a/lte/gateway/Vagrantfile b/lte/gateway/Vagrantfile index c245de5dbd1e..6677f1ce3c79 100644 --- a/lte/gateway/Vagrantfile +++ b/lte/gateway/Vagrantfile @@ -25,9 +25,9 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # - debian/contrib-jessie64 # - linux kernel from debian jessie backports # - updated vbguest-tool - magma.vm.box = "fbcmagma/magma_dev" + magma.vm.box = "magmacore/magma_dev" magma.vm.hostname = "magma-dev" - magma.vm.box_version = "1.0.1604610159" + magma.vm.box_version = "1.1.20201124" magma.vbguest.auto_update = false # Create a private network, which allows host-only access to the machine @@ -43,6 +43,27 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| vb.customize ["modifyvm", :id, "--cpus", "4"] vb.customize ["modifyvm", :id, "--nicpromisc2", "allow-all"] end + + config.vm.provider :libvirt do |domain, override| + override.vm.synced_folder "../..", "/home/vagrant/magma", type: 'nfs', linux__nfs_options: ['rw','no_subtree_check', 'no_root_squash'] + domain.uri = "qemu+unix:///system" + domain.memory = 6144 + domain.cpus = 4 + domain.driver = "kvm" + domain.host = "localhost" + domain.connect_via_ssh = false + domain.username = $user + domain.storage_pool_name = "default" + domain.nic_model_type = "virtio" + domain.management_network_name = "magma-mgmt-net" + domain.management_network_address = "172.17.2.0/24" + domain.nested = true + domain.cpu_mode = "host-passthrough" + domain.volume_cache = "unsafe" + domain.disk_bus = "virtio" + domain.graphics_ip = "0.0.0.0" + end + magma.vm.provision "ansible" do |ansible| ansible.host_key_checking = false ansible.playbook = "deploy/magma_dev.yml" @@ -54,9 +75,9 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end config.vm.define :magma_trfserver, autostart: false do |magma_trfserver| - magma_trfserver.vm.box = "fbcmagma/magma_trfserver" + magma_trfserver.vm.box = "magmacore/magma_trfserver" magma_trfserver.vm.hostname = "magma-trfserver" - magma_trfserver.vm.box_version = "1.0.1551294676" + magma_trfserver.vm.box_version = "1.1.20201124" magma_trfserver.vbguest.auto_update = false # Create a private network, which allows host-only access to the machine @@ -73,6 +94,26 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| vb.customize ["modifyvm", :id, "--nicpromisc2", "allow-all"] end + config.vm.provider :libvirt do |domain, override| + override.vm.synced_folder "../..", "/home/vagrant/magma", type: 'nfs', linux__nfs_options: ['rw','no_subtree_check', 'no_root_squash'] + domain.uri = "qemu+unix:///system" + domain.memory = 6144 + domain.cpus = 4 + domain.driver = "kvm" + domain.host = "localhost" + domain.connect_via_ssh = false + domain.username = $user + domain.storage_pool_name = "default" + domain.nic_model_type = "virtio" + domain.management_network_name = "magma-mgmt-net" + domain.management_network_address = "172.17.2.0/24" + domain.nested = true + domain.cpu_mode = "host-passthrough" + domain.volume_cache = "unsafe" + domain.disk_bus = "virtio" + domain.graphics_ip = "0.0.0.0" + end + magma_trfserver.vm.provision "ansible" do |ansible| ansible.host_key_checking = false ansible.playbook = "deploy/magma_trfserver.yml" @@ -85,9 +126,9 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.define :magma_test, autostart: false do |magma_test| # Get our prepackaged box from the atlas cloud - magma_test.vm.box = "fbcmagma/magma_test" + magma_test.vm.box = "magmacore/magma_test" magma_test.vm.hostname = "magma-test" - magma_test.vm.box_version = "1.0.1581466527" + magma_test.vm.box_version = "1.1.20201124" magma_test.vbguest.auto_update = false # Create a private network, which allows host-only access to the machine @@ -106,6 +147,26 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| vb.customize ["modifyvm", :id, "--nicpromisc2", "allow-all"] end + config.vm.provider :libvirt do |domain, override| + override.vm.synced_folder "../..", "/home/vagrant/magma", type: 'nfs', linux__nfs_options: ['rw','no_subtree_check', 'no_root_squash'] + domain.uri = "qemu+unix:///system" + domain.memory = 1024 + domain.cpus = 1 + domain.driver = "kvm" + domain.host = "localhost" + domain.connect_via_ssh = false + domain.username = $user + domain.storage_pool_name = "default" + domain.nic_model_type = "virtio" + domain.management_network_name = "magma-mgmt-net" + domain.management_network_address = "172.17.2.0/24" + domain.nested = true + domain.cpu_mode = "host-passthrough" + domain.volume_cache = "unsafe" + domain.disk_bus = "virtio" + domain.graphics_ip = "0.0.0.0" + end + magma_test.vm.provision "ansible" do |ansible| ansible.host_key_checking = false ansible.playbook = "deploy/magma_test.yml" @@ -191,3 +252,4 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end end + diff --git a/orc8r/tools/packer/magma-dev-libvirt.json b/orc8r/tools/packer/magma-dev-libvirt.json new file mode 100644 index 000000000000..14a1096e2d25 --- /dev/null +++ b/orc8r/tools/packer/magma-dev-libvirt.json @@ -0,0 +1,123 @@ +{ + "variables": { + "cloud_token": "{{ env `ATLAS_TOKEN` }}", + "version": "1.0.{{timestamp}}", + "cpus": "2", + "memory": "2048", + "disk_size": "10G", + "boot_wait": "10s" + }, + "builders": [{ + "type": "qemu", + "vm_name": "qemu-magma-dev", + "iso_checksum": "md5:5c583fd40360fd039b3ac98387b77dbb", + "iso_url": "https://cdimage.debian.org/mirror/cdimage/archive/9.2.1/amd64/iso-cd/debian-9.2.1-amd64-netinst.iso", + "disk_size": "{{ user `disk_size` }}", + "headless": true, + "http_directory": ".", + "ssh_username": "vagrant", + "ssh_password": "vagrant", + "shutdown_command": "echo 'vagrant' | sudo -S shutdown -P now", + "ssh_wait_timeout": "64206s", + "format": "qcow2", + "skip_compaction": false, + "disk_compression": true, + "accelerator": "kvm", + "qemuargs": [ + [ "-smp", "{{ user `cpus` }}" ], + [ "-m", "{{ user `memory` }}M" ] + ], + + "boot_wait": "{{ user `boot_wait` }}", + "boot_command": + [ + "", + "install ", + "preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/magma-libvirt.seed ", + "debian-installer=en_US ", + "auto=true ", + "locale=en_US ", + "kbd-chooser/method=us ", + "keyboard-configuration/xkb-keymap=us ", + "netcfg/get_hostname={{ .Name }} ", + "netcfg/get_domain=magma.com ", + "fb=false ", + "debconf/frontend=noninteractive ", + "console-setup/ask_detect=false ", + "console-keymaps-at/keymap=us ", + "" + ] + }], + "provisioners": [ +{ + "type": "shell", + "script": "scripts/provision-stretch.sh", + "execute_command": "echo 'vagrant' | sudo -S env {{.Vars}} {{.Path}}" + },{ + "type": "shell", + "inline": ["sudo reboot"], + "expect_disconnect": true + },{ + "type": "shell", + "script": "scripts/guest_additions.sh", + "execute_command": "echo 'vagrant' | sudo -S env {{.Vars}} {{.Path}}", + "pause_before": "10s" + }, { + "type": "shell", + "script": "scripts/vagrant_key.sh", + "execute_command": "echo 'vagrant' | sudo -S env {{.Vars}} {{.Path}}" + }, + { + "type": "shell", + "execute_command": "echo 'vagrant' | {{.Vars}} sudo -S -E bash '{{.Path}}'", + "script": "scripts/setup.sh" + }, + { + "type": "shell", + "execute_command": "echo 'vagrant' | {{.Vars}} sudo -S -E bash '{{.Path}}'", + "script": "scripts/ansible_debian.sh" + }, + { + "type": "ansible-local", + "playbook_file": "../../../lte/gateway/deploy/magma_dev.yml", + "inventory_groups": "dev", + "role_paths": [ + "../../../orc8r/tools/ansible/roles/apt_cache", + "../../../orc8r/tools/ansible/roles/distro_snapshot", + "../../../orc8r/tools/ansible/roles/docker", + "../../../orc8r/tools/ansible/roles/fluent_bit", + "../../../orc8r/tools/ansible/roles/gateway_dev", + "../../../orc8r/tools/ansible/roles/gateway_services", + "../../../orc8r/tools/ansible/roles/golang", + "../../../orc8r/tools/ansible/roles/pkgrepo", + "../../../orc8r/tools/ansible/roles/python_dev", + "../../../orc8r/tools/ansible/roles/resolv_conf", + "../../../orc8r/tools/ansible/roles/test_certs", + "../../../lte/gateway/deploy/roles/stretch_snapshot", + "../../../lte/gateway/deploy/roles/envoy", + "../../../lte/gateway/deploy/roles/magma", + "../../../lte/gateway/deploy/roles/dev_common", + "../../../lte/gateway/deploy/roles/magma", + "../../../lte/gateway/deploy/roles/magma_test", + "../../../lte/gateway/deploy/roles/ovs_build", + "../../../lte/gateway/deploy/roles/ovs_deploy", + "../../../lte/gateway/deploy/roles/ovs_prepare", + "../../../lte/gateway/deploy/roles/pyvenv", + "../../../lte/gateway/deploy/roles/stretch_snapshot", + "../../../lte/gateway/deploy/roles/trfserver", + "../../../lte/gateway/deploy/roles/uselocalpkgrepo" + ], + "extra_arguments": [ + "--extra-vars '{\"ansible_user\": \"vagrant\", \"preburn\": true, \"full_provision\": false}'" + ] + } + ], + "post-processors": [ + [ + { + "output": "builds/magma_dev_{{.Provider}}.box", + "type": "vagrant" + } + ] + ] +} diff --git a/orc8r/tools/packer/magma-dev-libvirt.json-back b/orc8r/tools/packer/magma-dev-libvirt.json-back new file mode 100644 index 000000000000..7a50f28096d2 --- /dev/null +++ b/orc8r/tools/packer/magma-dev-libvirt.json-back @@ -0,0 +1,128 @@ +{ + "variables": { + "cloud_token": "{{ env `ATLAS_TOKEN` }}", + "version": "1.0.{{timestamp}}", + "cpus": "2", + "memory": "2048", + "disk_size": "102400", + "boot_wait": "10s" + }, + "builders": [{ + "type": "qemu", + "vm_name": "qemu-{{ user `name` }}", + "iso_url": "https://cdimage.debian.org/mirror/cdimage/archive/9.2.1/amd64/iso-cd/debian-9.2.1-amd64-netinst.iso", + "iso_checksum": "5c583fd40360fd039b3ac98387b77dbb", + "iso_checksum_type": "md5", + "disk_size": "{{ user `disk_size` }}", + "headless": true, + "http_directory": "http", + "ssh_username": "vagrant", + "ssh_password": "vagrant", + "shutdown_command": "echo 'vagrant' | sudo -S shutdown -P now", + "ssh_wait_timeout": "64206s", + + "accelerator": "kvm", + "qemuargs": [ + [ "-smp", "{{ user `cpus` }}" ], + [ "-m", "{{ user `memory` }}M" ] + ], + + "boot_wait": "{{ user `boot_wait` }}", + "boot_command": + [ + "", + "install ", + "preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/magma.seed ", + "debian-installer=en_US ", + "auto=true ", + "locale=en_US ", + "kbd-chooser/method=us ", + "keyboard-configuration/xkb-keymap=us ", + "netcfg/get_hostname={{ .Name }} ", + "netcfg/get_domain=magma.com ", + "fb=false ", + "debconf/frontend=noninteractive ", + "console-setup/ask_detect=false ", + "console-keymaps-at/keymap=us ", + "" + ] + }], + "provisioners": [ +{ + "type": "shell", + "script": "scripts/provision-stretch.sh", + "execute_command": "echo 'vagrant' | sudo -S env {{.Vars}} {{.Path}}" + },{ + "type": "shell", + "inline": ["sudo reboot"], + "expect_disconnect": true + },{ + "type": "shell", + "script": "scripts/guest_additions.sh", + "execute_command": "echo 'vagrant' | sudo -S env {{.Vars}} {{.Path}}", + "pause_before": "10s" + }, { + "type": "shell", + "script": "scripts/vagrant_key.sh", + "execute_command": "echo 'vagrant' | sudo -S env {{.Vars}} {{.Path}}" + }, + { + "type": "shell", + "execute_command": "echo 'vagrant' | {{.Vars}} sudo -S -E bash '{{.Path}}'", + "script": "scripts/setup.sh" + }, + { + "type": "shell", + "execute_command": "echo 'vagrant' | {{.Vars}} sudo -S -E bash '{{.Path}}'", + "script": "scripts/ansible_debian.sh" + }, + { + "type": "ansible-local", + "playbook_file": "../../../lte/gateway/deploy/magma_dev.yml", + "inventory_groups": "dev", + "role_paths": [ + "../../../orc8r/tools/ansible/roles/apt_cache", + "../../../orc8r/tools/ansible/roles/distro_snapshot", + "../../../orc8r/tools/ansible/roles/docker", + "../../../orc8r/tools/ansible/roles/fluent_bit", + "../../../orc8r/tools/ansible/roles/gateway_dev", + "../../../orc8r/tools/ansible/roles/gateway_services", + "../../../orc8r/tools/ansible/roles/golang", + "../../../orc8r/tools/ansible/roles/pkgrepo", + "../../../orc8r/tools/ansible/roles/python_dev", + "../../../orc8r/tools/ansible/roles/resolv_conf", + "../../../orc8r/tools/ansible/roles/test_certs", + "../../../lte/gateway/deploy/roles/stretch_snapshot", + "../../../lte/gateway/deploy/roles/dev_common", + "../../../lte/gateway/deploy/roles/magma", + "../../../lte/gateway/deploy/roles/dev_common", + "../../../lte/gateway/deploy/roles/magma", + "../../../lte/gateway/deploy/roles/magma_oai", + "../../../lte/gateway/deploy/roles/magma_test", + "../../../lte/gateway/deploy/roles/ovs_build", + "../../../lte/gateway/deploy/roles/ovs_deploy", + "../../../lte/gateway/deploy/roles/ovs_prepare", + "../../../lte/gateway/deploy/roles/stretch_snapshot", + "../../../lte/gateway/deploy/roles/trfserver", + "../../../lte/gateway/deploy/roles/uselocalpkgrepo" + ], + "extra_arguments": [ + "--extra-vars '{\"ansible_user\": \"vagrant\", \"preburn\": true, \"full_provision\": false}'" + ] + } + ], + "post-processors": [ + [ + { + "output": "builds/magma_dev_{{.Provider}}.box", + "type": "vagrant" + }, + { + "type": "vagrant-cloud", + "box_tag": "fbcmagma/magma_dev", + "access_token": "{{user `cloud_token`}}", + "version": "{{user `version`}}" + } + ] + ] +} diff --git a/orc8r/tools/packer/magma-libvirt.seed b/orc8r/tools/packer/magma-libvirt.seed new file mode 100644 index 000000000000..c30caa32279e --- /dev/null +++ b/orc8r/tools/packer/magma-libvirt.seed @@ -0,0 +1,88 @@ +################################################################################ +# Copyright 2020 The Magma Authors. + +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +################################################################################ + +d-i debian-installer/language string en +d-i debian-installer/country string US +d-i debian-installer/locale string en_US.UTF-8 +d-i keyboard-configuration/xkb-keymap select us +d-i keymap select us + +d-i netcfg/choose_interface select auto +d-i netcfg/get_hostname string vagrant +d-i netcfg/get_domain string vagrant + +# load non-free firmware +d-i hw-detect/load_firmware boolean true + +# use the US debian mirror +d-i mirror/country string us +d-i mirror/http/hostname string http.us.debian.org +d-i mirror/http/directory string /debian +d-i mirror/http/proxy string + +# disable Predictable Network Interface Names (not supported in Vagrant 1.8.1). +d-i debian-installer/add-kernel-opts string net.ifnames=0 +d-i preseed/late_command string \ + echo "vagrant ALL=(ALL) NOPASSWD:ALL" >> /target/etc/sudoers; \ + echo "Defaults:vagrant !requiretty" >> /target/etc/sudoers; \ + echo "auto eth0" >> /target/etc/network/interfaces; \ + echo "iface eth0 inet dhcp" >> /target/etc/network/interfaces; \ + for i in 1 2 3; do \ + echo "auto eth$i" >> /target/etc/network/interfaces; \ + echo "iface eth$i inet manual" >> /target/etc/network/interfaces; \ + done + +# no root user -- use sudo instead +d-i passwd/root-login boolean false + +# create a user +d-i passwd/user-fullname string vagrant +d-i passwd/username string vagrant +d-i passwd/user-password password vagrant +d-i passwd/user-password-again password vagrant + +# utc all day +d-i clock-setup/utc boolean true +d-i time/zone string UTC +d-i clock-setup/ntp boolean true + +d-i partman-auto/disk string /dev/vda +d-i partman-auto/method string regular +d-i partman-auto/choose_recipe select atomic +d-i partman-partitioning/confirm_write_new_label boolean true +d-i partman/choose_partition select finish +d-i partman/confirm boolean true +d-i partman/confirm_nooverwrite boolean true + +# always install to the mbr +d-i grub-installer/only_debian boolean true +d-i grub-installer/with_other_os boolean true +d-i grub-installer/bootdev string /dev/vda + +# install base system +tasksel tasksel/first multiselect standard, ssh-server + +# Don't scan other dvd +apt-cdrom-setup apt-setup/cdrom/set-first boolean false +apt-mirror-setup apt-setup/use_mirror boolean true + +# Don't send our data +popularity-contest popularity-contest/participate boolean false + +# acknowledge complete message +d-i finish-install/reboot_in_progress note + +# Prevent packaged version of VirtualBox Guest Additions being installed: +d-i preseed/early_command string sed -i \ + '/in-target/idiscover(){/sbin/discover|grep -v VirtualBox;}' \ + /usr/lib/pre-pkgsel.d/20install-hwpackages diff --git a/orc8r/tools/packer/magma-test-libvirt.json b/orc8r/tools/packer/magma-test-libvirt.json new file mode 100644 index 000000000000..739baa1d6223 --- /dev/null +++ b/orc8r/tools/packer/magma-test-libvirt.json @@ -0,0 +1,123 @@ +{ + "variables": { + "cloud_token": "{{ env `ATLAS_TOKEN` }}", + "version": "1.0.{{timestamp}}", + "cpus": "2", + "memory": "2048", + "disk_size": "10G", + "boot_wait": "10s" + }, + "builders": [{ + "type": "qemu", + "vm_name": "qemu-magma-test", + "iso_checksum": "md5:5c583fd40360fd039b3ac98387b77dbb", + "iso_url": "https://cdimage.debian.org/mirror/cdimage/archive/9.2.1/amd64/iso-cd/debian-9.2.1-amd64-netinst.iso", + "disk_size": "{{ user `disk_size` }}", + "headless": true, + "http_directory": ".", + "ssh_username": "vagrant", + "ssh_password": "vagrant", + "shutdown_command": "echo 'vagrant' | sudo -S shutdown -P now", + "ssh_wait_timeout": "64206s", + "format": "qcow2", + "skip_compaction": false, + "disk_compression": true, + "accelerator": "kvm", + "qemuargs": [ + [ "-smp", "{{ user `cpus` }}" ], + [ "-m", "{{ user `memory` }}M" ] + ], + + "boot_wait": "{{ user `boot_wait` }}", + "boot_command": + [ + "", + "install ", + "preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/magma-libvirt.seed ", + "debian-installer=en_US ", + "auto=true ", + "locale=en_US ", + "kbd-chooser/method=us ", + "keyboard-configuration/xkb-keymap=us ", + "netcfg/get_hostname={{ .Name }} ", + "netcfg/get_domain=magma.com ", + "fb=false ", + "debconf/frontend=noninteractive ", + "console-setup/ask_detect=false ", + "console-keymaps-at/keymap=us ", + "" + ] + }], + "provisioners": [ +{ + "type": "shell", + "script": "scripts/provision-stretch.sh", + "execute_command": "echo 'vagrant' | sudo -S env {{.Vars}} {{.Path}}" + },{ + "type": "shell", + "inline": ["sudo reboot"], + "expect_disconnect": true + },{ + "type": "shell", + "script": "scripts/guest_additions.sh", + "execute_command": "echo 'vagrant' | sudo -S env {{.Vars}} {{.Path}}", + "pause_before": "10s" + }, { + "type": "shell", + "script": "scripts/vagrant_key.sh", + "execute_command": "echo 'vagrant' | sudo -S env {{.Vars}} {{.Path}}" + }, + { + "type": "shell", + "execute_command": "echo 'vagrant' | {{.Vars}} sudo -S -E bash '{{.Path}}'", + "script": "scripts/setup.sh" + }, + { + "type": "shell", + "execute_command": "echo 'vagrant' | {{.Vars}} sudo -S -E bash '{{.Path}}'", + "script": "scripts/ansible_debian.sh" + }, + { + "type": "ansible-local", + "playbook_file": "../../../lte/gateway/deploy/magma_test.yml", + "inventory_groups": "test", + "role_paths": [ + "../../../orc8r/tools/ansible/roles/apt_cache", + "../../../orc8r/tools/ansible/roles/distro_snapshot", + "../../../orc8r/tools/ansible/roles/docker", + "../../../orc8r/tools/ansible/roles/fluent_bit", + "../../../orc8r/tools/ansible/roles/gateway_dev", + "../../../orc8r/tools/ansible/roles/gateway_services", + "../../../orc8r/tools/ansible/roles/golang", + "../../../orc8r/tools/ansible/roles/pkgrepo", + "../../../orc8r/tools/ansible/roles/python_dev", + "../../../orc8r/tools/ansible/roles/resolv_conf", + "../../../orc8r/tools/ansible/roles/test_certs", + "../../../lte/gateway/deploy/roles/stretch_snapshot", + "../../../lte/gateway/deploy/roles/envoy", + "../../../lte/gateway/deploy/roles/magma", + "../../../lte/gateway/deploy/roles/dev_common", + "../../../lte/gateway/deploy/roles/magma", + "../../../lte/gateway/deploy/roles/magma_test", + "../../../lte/gateway/deploy/roles/ovs_build", + "../../../lte/gateway/deploy/roles/ovs_deploy", + "../../../lte/gateway/deploy/roles/ovs_prepare", + "../../../lte/gateway/deploy/roles/pyvenv", + "../../../lte/gateway/deploy/roles/stretch_snapshot", + "../../../lte/gateway/deploy/roles/trfserver", + "../../../lte/gateway/deploy/roles/uselocalpkgrepo" + ], + "extra_arguments": [ + "--extra-vars '{\"ansible_user\": \"vagrant\", \"preburn\": true, \"full_provision\": false}'" + ] + } + ], + "post-processors": [ + [ + { + "output": "builds/magma_test_{{.Provider}}.box", + "type": "vagrant" + } + ] + ] +} diff --git a/orc8r/tools/packer/magma-trfserver-libvirt.json b/orc8r/tools/packer/magma-trfserver-libvirt.json new file mode 100644 index 000000000000..45ed31b88fa0 --- /dev/null +++ b/orc8r/tools/packer/magma-trfserver-libvirt.json @@ -0,0 +1,101 @@ +{ + "variables": { + "cloud_token": "{{ env `ATLAS_TOKEN` }}", + "version": "1.0.{{timestamp}}", + "cpus": "2", + "memory": "2048", + "disk_size": "10G", + "boot_wait": "10s" + }, + "builders": [{ + "type": "qemu", + "vm_name": "qemu-magma-trfserver", + "iso_checksum": "md5:5c583fd40360fd039b3ac98387b77dbb", + "iso_url": "https://cdimage.debian.org/mirror/cdimage/archive/9.2.1/amd64/iso-cd/debian-9.2.1-amd64-netinst.iso", + "disk_size": "{{ user `disk_size` }}", + "headless": true, + "http_directory": ".", + "ssh_username": "vagrant", + "ssh_password": "vagrant", + "shutdown_command": "echo 'vagrant' | sudo -S shutdown -P now", + "ssh_wait_timeout": "64206s", + "format": "qcow2", + "skip_compaction": false, + "disk_compression": true, + "accelerator": "kvm", + "qemuargs": [ + [ "-smp", "{{ user `cpus` }}" ], + [ "-m", "{{ user `memory` }}M" ] + ], + + "boot_wait": "{{ user `boot_wait` }}", + "boot_command": + [ + "", + "install ", + "preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/magma-libvirt.seed ", + "debian-installer=en_US ", + "auto=true ", + "locale=en_US ", + "kbd-chooser/method=us ", + "keyboard-configuration/xkb-keymap=us ", + "netcfg/get_hostname={{ .Name }} ", + "netcfg/get_domain=magma.com ", + "fb=false ", + "debconf/frontend=noninteractive ", + "console-setup/ask_detect=false ", + "console-keymaps-at/keymap=us ", + "" + ] + }], + "provisioners": [ +{ + "type": "shell", + "script": "scripts/provision-stretch.sh", + "execute_command": "echo 'vagrant' | sudo -S env {{.Vars}} {{.Path}}" + },{ + "type": "shell", + "inline": ["sudo reboot"], + "expect_disconnect": true + },{ + "type": "shell", + "script": "scripts/guest_additions.sh", + "execute_command": "echo 'vagrant' | sudo -S env {{.Vars}} {{.Path}}", + "pause_before": "10s" + }, { + "type": "shell", + "script": "scripts/vagrant_key.sh", + "execute_command": "echo 'vagrant' | sudo -S env {{.Vars}} {{.Path}}" + }, + { + "type": "shell", + "execute_command": "echo 'vagrant' | {{.Vars}} sudo -S -E bash '{{.Path}}'", + "script": "scripts/setup.sh" + }, + { + "type": "shell", + "execute_command": "echo 'vagrant' | {{.Vars}} sudo -S -E bash '{{.Path}}'", + "script": "scripts/ansible_debian.sh" + }, + { + "type": "ansible-local", + "playbook_file": "../../../lte/gateway/deploy/magma_trfserver.yml", + "inventory_groups": "trfserver", + "role_paths": [ + "../../../lte/gateway/deploy/roles/trfserver", + "../../../lte/gateway/deploy/roles/stretch_snapshot" + ], + "extra_arguments": [ + "--extra-vars '{\"ansible_user\": \"vagrant\", \"preburn\": true, \"full_provision\": false}'" + ] + } + ], + "post-processors": [ + [ + { + "output": "builds/magma_trfserver_{{.Provider}}.box", + "type": "vagrant" + } + ] + ] +} diff --git a/orc8r/tools/packer/magma-trfserver-virtualbox.json b/orc8r/tools/packer/magma-trfserver-virtualbox.json index e6e2fca3f0fd..8a90011cbe8d 100644 --- a/orc8r/tools/packer/magma-trfserver-virtualbox.json +++ b/orc8r/tools/packer/magma-trfserver-virtualbox.json @@ -67,7 +67,8 @@ "playbook_file": "../../../lte/gateway/deploy/magma_trfserver.yml", "inventory_groups": "trfserver", "role_paths": [ - "../../../lte/gateway/deploy/roles/trfserver" + "../../../lte/gateway/deploy/roles/trfserver", + "../../../lte/gateway/deploy/roles/stretch_snapshot" ], "extra_arguments": [ "--extra-vars '{\"ansible_user\": \"vagrant\", \"preburn\": true, \"full_provision\": false}'" From 099179df69f400e2d403f461cfc11c2b456a9fe2 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Mon, 30 Nov 2020 17:50:56 +0300 Subject: [PATCH 2/2] Update box tags Signed-off-by: Matthew Mosesohn --- orc8r/tools/packer/magma-dev-libvirt.json | 7 + .../tools/packer/magma-dev-libvirt.json-back | 128 ------------------ orc8r/tools/packer/magma-dev-virtualbox.json | 2 +- orc8r/tools/packer/magma-test-libvirt.json | 7 + orc8r/tools/packer/magma-test-virtualbox.json | 2 +- .../tools/packer/magma-trfserver-libvirt.json | 6 + .../packer/magma-trfserver-virtualbox.json | 2 +- 7 files changed, 23 insertions(+), 131 deletions(-) delete mode 100644 orc8r/tools/packer/magma-dev-libvirt.json-back diff --git a/orc8r/tools/packer/magma-dev-libvirt.json b/orc8r/tools/packer/magma-dev-libvirt.json index 14a1096e2d25..bdda96f094aa 100644 --- a/orc8r/tools/packer/magma-dev-libvirt.json +++ b/orc8r/tools/packer/magma-dev-libvirt.json @@ -117,7 +117,14 @@ { "output": "builds/magma_dev_{{.Provider}}.box", "type": "vagrant" + }, + { + "type": "vagrant-cloud", + "box_tag": "magmacore/magma_dev", + "access_token": "{{user `cloud_token`}}", + "version": "{{user `version`}}" } + ] ] } diff --git a/orc8r/tools/packer/magma-dev-libvirt.json-back b/orc8r/tools/packer/magma-dev-libvirt.json-back deleted file mode 100644 index 7a50f28096d2..000000000000 --- a/orc8r/tools/packer/magma-dev-libvirt.json-back +++ /dev/null @@ -1,128 +0,0 @@ -{ - "variables": { - "cloud_token": "{{ env `ATLAS_TOKEN` }}", - "version": "1.0.{{timestamp}}", - "cpus": "2", - "memory": "2048", - "disk_size": "102400", - "boot_wait": "10s" - }, - "builders": [{ - "type": "qemu", - "vm_name": "qemu-{{ user `name` }}", - "iso_url": "https://cdimage.debian.org/mirror/cdimage/archive/9.2.1/amd64/iso-cd/debian-9.2.1-amd64-netinst.iso", - "iso_checksum": "5c583fd40360fd039b3ac98387b77dbb", - "iso_checksum_type": "md5", - "disk_size": "{{ user `disk_size` }}", - "headless": true, - "http_directory": "http", - "ssh_username": "vagrant", - "ssh_password": "vagrant", - "shutdown_command": "echo 'vagrant' | sudo -S shutdown -P now", - "ssh_wait_timeout": "64206s", - - "accelerator": "kvm", - "qemuargs": [ - [ "-smp", "{{ user `cpus` }}" ], - [ "-m", "{{ user `memory` }}M" ] - ], - - "boot_wait": "{{ user `boot_wait` }}", - "boot_command": - [ - "", - "install ", - "preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/magma.seed ", - "debian-installer=en_US ", - "auto=true ", - "locale=en_US ", - "kbd-chooser/method=us ", - "keyboard-configuration/xkb-keymap=us ", - "netcfg/get_hostname={{ .Name }} ", - "netcfg/get_domain=magma.com ", - "fb=false ", - "debconf/frontend=noninteractive ", - "console-setup/ask_detect=false ", - "console-keymaps-at/keymap=us ", - "" - ] - }], - "provisioners": [ -{ - "type": "shell", - "script": "scripts/provision-stretch.sh", - "execute_command": "echo 'vagrant' | sudo -S env {{.Vars}} {{.Path}}" - },{ - "type": "shell", - "inline": ["sudo reboot"], - "expect_disconnect": true - },{ - "type": "shell", - "script": "scripts/guest_additions.sh", - "execute_command": "echo 'vagrant' | sudo -S env {{.Vars}} {{.Path}}", - "pause_before": "10s" - }, { - "type": "shell", - "script": "scripts/vagrant_key.sh", - "execute_command": "echo 'vagrant' | sudo -S env {{.Vars}} {{.Path}}" - }, - { - "type": "shell", - "execute_command": "echo 'vagrant' | {{.Vars}} sudo -S -E bash '{{.Path}}'", - "script": "scripts/setup.sh" - }, - { - "type": "shell", - "execute_command": "echo 'vagrant' | {{.Vars}} sudo -S -E bash '{{.Path}}'", - "script": "scripts/ansible_debian.sh" - }, - { - "type": "ansible-local", - "playbook_file": "../../../lte/gateway/deploy/magma_dev.yml", - "inventory_groups": "dev", - "role_paths": [ - "../../../orc8r/tools/ansible/roles/apt_cache", - "../../../orc8r/tools/ansible/roles/distro_snapshot", - "../../../orc8r/tools/ansible/roles/docker", - "../../../orc8r/tools/ansible/roles/fluent_bit", - "../../../orc8r/tools/ansible/roles/gateway_dev", - "../../../orc8r/tools/ansible/roles/gateway_services", - "../../../orc8r/tools/ansible/roles/golang", - "../../../orc8r/tools/ansible/roles/pkgrepo", - "../../../orc8r/tools/ansible/roles/python_dev", - "../../../orc8r/tools/ansible/roles/resolv_conf", - "../../../orc8r/tools/ansible/roles/test_certs", - "../../../lte/gateway/deploy/roles/stretch_snapshot", - "../../../lte/gateway/deploy/roles/dev_common", - "../../../lte/gateway/deploy/roles/magma", - "../../../lte/gateway/deploy/roles/dev_common", - "../../../lte/gateway/deploy/roles/magma", - "../../../lte/gateway/deploy/roles/magma_oai", - "../../../lte/gateway/deploy/roles/magma_test", - "../../../lte/gateway/deploy/roles/ovs_build", - "../../../lte/gateway/deploy/roles/ovs_deploy", - "../../../lte/gateway/deploy/roles/ovs_prepare", - "../../../lte/gateway/deploy/roles/stretch_snapshot", - "../../../lte/gateway/deploy/roles/trfserver", - "../../../lte/gateway/deploy/roles/uselocalpkgrepo" - ], - "extra_arguments": [ - "--extra-vars '{\"ansible_user\": \"vagrant\", \"preburn\": true, \"full_provision\": false}'" - ] - } - ], - "post-processors": [ - [ - { - "output": "builds/magma_dev_{{.Provider}}.box", - "type": "vagrant" - }, - { - "type": "vagrant-cloud", - "box_tag": "fbcmagma/magma_dev", - "access_token": "{{user `cloud_token`}}", - "version": "{{user `version`}}" - } - ] - ] -} diff --git a/orc8r/tools/packer/magma-dev-virtualbox.json b/orc8r/tools/packer/magma-dev-virtualbox.json index d849eb508f54..287098cebd90 100644 --- a/orc8r/tools/packer/magma-dev-virtualbox.json +++ b/orc8r/tools/packer/magma-dev-virtualbox.json @@ -110,7 +110,7 @@ }, { "type": "vagrant-cloud", - "box_tag": "fbcmagma/magma_dev", + "box_tag": "magmacore/magma_dev", "access_token": "{{user `cloud_token`}}", "version": "{{user `version`}}" } diff --git a/orc8r/tools/packer/magma-test-libvirt.json b/orc8r/tools/packer/magma-test-libvirt.json index 739baa1d6223..efed6f583beb 100644 --- a/orc8r/tools/packer/magma-test-libvirt.json +++ b/orc8r/tools/packer/magma-test-libvirt.json @@ -117,7 +117,14 @@ { "output": "builds/magma_test_{{.Provider}}.box", "type": "vagrant" + }, + { + "type": "vagrant-cloud", + "box_tag": "magmacore/magma_test", + "access_token": "{{user `cloud_token`}}", + "version": "{{user `version`}}" } + ] ] } diff --git a/orc8r/tools/packer/magma-test-virtualbox.json b/orc8r/tools/packer/magma-test-virtualbox.json index b7a426f8aee3..e2ba04e4ad71 100644 --- a/orc8r/tools/packer/magma-test-virtualbox.json +++ b/orc8r/tools/packer/magma-test-virtualbox.json @@ -109,7 +109,7 @@ }, { "type": "vagrant-cloud", - "box_tag": "fbcmagma/magma_test", + "box_tag": "magmacore/magma_test", "access_token": "{{user `cloud_token`}}", "version": "{{user `version`}}" } diff --git a/orc8r/tools/packer/magma-trfserver-libvirt.json b/orc8r/tools/packer/magma-trfserver-libvirt.json index 45ed31b88fa0..8a1fe736c65f 100644 --- a/orc8r/tools/packer/magma-trfserver-libvirt.json +++ b/orc8r/tools/packer/magma-trfserver-libvirt.json @@ -95,6 +95,12 @@ { "output": "builds/magma_trfserver_{{.Provider}}.box", "type": "vagrant" + }, + { + "type": "vagrant-cloud", + "box_tag": "magmacore/magma_trfserver", + "access_token": "{{user `cloud_token`}}", + "version": "{{user `version`}}" } ] ] diff --git a/orc8r/tools/packer/magma-trfserver-virtualbox.json b/orc8r/tools/packer/magma-trfserver-virtualbox.json index 8a90011cbe8d..a1f330c70402 100644 --- a/orc8r/tools/packer/magma-trfserver-virtualbox.json +++ b/orc8r/tools/packer/magma-trfserver-virtualbox.json @@ -83,7 +83,7 @@ }, { "type": "vagrant-cloud", - "box_tag": "fbcmagma/magma_trfserver", + "box_tag": "magmacore/magma_trfserver", "access_token": "{{user `cloud_token`}}", "version": "{{user `version`}}" }