output-virtualbox-iso/
packer_cache/
builds/
+jujubase*/
+osm-*/
echo "PATH=$PATH"
juju status
-wget "$1"
-chmod +x install_osm.sh
-./install_osm.sh --nolxd -y --vimemu
+git clone https://osm.etsi.org/gerrit/osm/vim-emu.git
+git clone https://osm.etsi.org/gerrit/osm/devops.git
+eval devops/installers/full_install_osm.sh --nolxd -y "$1"
+
+cat >> ~/.bashrc <<-EOF
+export OSM_HOSTNAME=127.0.0.1
+export OSM_SOL005=True
+
+EOF
#!/bin/sh
sudo snap install juju --classic
+/snap/bin/juju bootstrap --bootstrap-series=xenial localhost osm
--- /dev/null
+#!/bin/sh
+mkdir -p /etc/systemd/system/scripts
+cat > /etc/systemd/system/scripts/osm-vimemu-startup.sh <<-'EOF'
+#!/bin/sh
+
+export OSM_HOSTNAME=127.0.0.1
+export OSM_SOL005=True
+
+echo "Waiting for OSM startup"
+while true; do
+ # wait for startup of osm
+ RC=$(osm vim-list)
+ if [ "$?" -eq 0 ]; then
+ break
+ fi
+ sleep 2
+done
+echo "OSM is up"
+sleep 10
+export VIMEMU_HOSTNAME=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' vim-emu)
+osm vim-create --name vim-emulator --user username --password password --auth_url http://$VIMEMU_HOSTNAME:6001/v2.0 --tenant tenantName --account_type openstack
+osm vnfd-create /home/vagrant/vim-emu/examples/vnfs/ping.tar.gz
+osm vnfd-create /home/vagrant/vim-emu/examples/vnfs/pong.tar.gz
+osm nsd-create /home/vagrant/vim-emu/examples/services/pingpong_nsd.tar.gz
+osm ns-create --nsd_name pingpong --ns_name test --vim_account vim-emulator
+
+echo "VIM emulator created"
+systemctl disable osm-vimemu-setup.service
+EOF
+chmod +x /etc/systemd/system/scripts/osm-vimemu-startup.sh
+
+cat > /etc/systemd/system/osm-vimemu-setup.service <<-'EOF'
+[Unit]
+Description=OSM VIM emulator setup
+
+[Service]
+Type=oneshot
+ExecStart=/etc/systemd/system/scripts/osm-vimemu-startup.sh
+RemainAfterExit=yes
+TimeoutSec=120
+
+# Output needs to appear in instance console output
+StandardOutput=journal+console
+
+[Install]
+WantedBy=multi-user.target
+EOF
+
+#systemctl enable osm-vimemu-setup.service
},
{
"type": "shell",
- "script": "scripts/juju-setup.sh"
+ "inline": ["echo 'vagrant' | sudo shutdown -r now"],
+ "expect_disconnect": "true"
+ },
+ {
+ "type": "shell",
+ "script": "scripts/juju-setup.sh",
+ "pause_before": "10s"
+ },
+ {
+ "type": "shell",
+ "script": "scripts/cleanup.sh"
}
],
"builders": [
"<enter><wait>"
],
"boot_wait": "10s",
- "disk_size": 15360,
+ "disk_size": 20480,
"guest_os_type": "Ubuntu_64",
"headless": true,
"http_directory": "http",
"shutdown_command": "echo 'vagrant'|sudo -S shutdown -P now",
"guest_additions_path": "VBoxGuestAdditions_{{.Version}}.iso",
"virtualbox_version_file": ".vbox_version",
- "vm_name": "packer-ubuntu-16.04-amd64-juju",
+ "output_directory": "jujubase-{{timestamp}}",
+ "vm_name": "xenial-jujubase",
"vboxmanage": [
[
"modifyvm",
]
]
}
+ ],
+ "post-processors": [
+ {
+ "output": "jujubase-{{timestamp}}/{{.Provider}}-jujubase.box",
+ "type": "vagrant",
+ "keep_input_artifact": true
+ }
]
}
{
"type": "shell",
"script": "scripts/get-install-osm.sh",
- "execute_command": "{{.Path}} {{user `osm_installer`}}"
+ "execute_command": "{{.Path}} {{user `osm_install_options`}}"
+ },
+ {
+ "type": "shell",
+ "execute_command": "echo 'vagrant' | {{.Vars}} sudo -S -E bash '{{.Path}}'",
+ "script": "scripts/vimemu.sh"
},
{
"type": "shell",
}
],
"variables": {
- "osm_installer": "https://osm-download.etsi.org/ftp/osm-4.0-four/install_osm.sh",
+ "osm_install_options": "--vimemu",
"input_ovf": "output-virtualbox-iso/packer-ubuntu-16.04-amd64-juju.ovf",
- "vm_name": "packer-ubuntu-16.04-ovf-amd64"
+ "vm_name": "xenial-osm"
},
"builders": [
{
"shutdown_command": "echo 'vagrant'|sudo -S shutdown -P now",
"virtualbox_version_file": ".vbox_version",
"vm_name": "{{user `vm_name`}}",
+ "output_directory": "osm-{{timestamp}}",
"vboxmanage": [
[
"modifyvm",
}
],
"post-processors": [
- {
- "output": "builds/{{.Provider}}-osm.box",
- "type": "vagrant"
- }
+ [
+ {
+ "output": "osm-{{timestamp}}/{{.Provider}}-osm.box",
+ "type": "vagrant",
+ "keep_input_artifact": true
+ },
+ {
+ "type": "vagrant-cloud",
+ "box_tag": "osm/{{user `release`}}",
+ "access_token": "{{user `cloud_token`}}",
+ "version": "{{user `version`}}"
+ }
+ ]
]
}