1 # Creation of standard VM images with Packer
3 Licensed under the Apache License, Version 2.0 (the "License");
4 you may not use this file except in compliance with the License.
5 You may obtain a copy of the License at
7 http://www.apache.org/licenses/LICENSE-2.0
9 Unless required by applicable law or agreed to in writing, software
10 distributed under the License is distributed on an "AS IS" BASIS,
11 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 See the License for the specific language governing permissions and
13 limitations under the License.
17 These Packer templates are derived from the templates for building Vagrant boxes for various OS produced by the [Bento Project](https://github.com/chef/bento), produced under Apache 2 license.
19 ## How to build images from Packer templates
21 Example 1: How to build an OSM box just for the VirtualBox provider:
24 cd packer_templates/osm
25 packer build -only=virtualbox-iso osm-7.0.1-amd64.json
28 Example 2: How to build an OSM VM with the OpenStack provider:
31 source openrc.sh # This is only needed the first time
32 jq 'del(."post-processors")' osm-7.0.1-amd64.json > tmp.json
33 packer build -only=openstack tmp.json
37 As it can be seen, this type of build needs some additional details and commands, since:
39 - We need to source the **OpenStack credentials**, besides **additional environment variables** that are required to pass cloud-dependent parameters to Packer.
40 - We must **rip the `post-processors` part** of the template, since it is likely to be incompatible with the `openstack` builder. This rip can be made easily `jq` but, unfortunately, Packer does not work reliably with piped inputs, so we need to use an intermediate temporary file.
42 ## How to test Vagrant boxes produced by Packer
44 1. Import the local box into Packer:
47 vagrant box add --name osm/osm-rel7 osm-7.0.1.virtualbox.box
49 2. Use the example at `vagrant_tests` to test it:
52 # Edit the box name in `Vagrantfile` as appropriate
55 3. In case the local image is no longer needed, it can be removed by:
58 vagrant box remove osm/osm-rel7
61 ## How to upload boxes to Vagrant Cloud
63 You need to use the [Vagrant web page](https://app.vagrantup.com/boxes/search).
65 Here there is a [step-by-step guide](https://blog.ycshao.com/2017/09/16/how-to-upload-vagrant-box-to-vagrant-cloud/) with screenshots.