+++ /dev/null
-#!/bin/bash -x
-
-# vim: sw=4 ts=4 sts=4 et tw=72 :
-
-# force any errors to cause the script and job to end in failure
-set -xeu -o pipefail
-
-# Ensure that necessary variables are set to enable noninteractive mode in
-# commands.
-export DEBIAN_FRONTEND=noninteractive
-
-# To handle the prompt style that is expected all over the environment
-# with how use use robotframework we need to make sure that it is
-# consistent for any of the users that are created during dynamic spin
-# ups
-echo 'PS1="[\u@\h \W]> "' >> /etc/skel/.bashrc
-
-echo '---> Install OpenVSwitch 2.5.0'
-apt-get update -m
-apt-get install openvswitch-switch openvswitch-vtep
-
-# Temporary workaround required to bring up OVS
-# post-install without which OVS daemon exits.
-service openvswitch-switch restart
-# Verify the OVS service status
-service openvswitch-switch status
-
-echo '---> Installing mininet'
-apt-get install mininet
-
-echo '---> Installing build pre-requisites'
-apt-get install build-essential snmp libsnmp-dev snmpd libpcap-dev \
-autoconf make automake libtool libconfig-dev libssl-dev libffi-dev libssl-doc pkg-config
-
-git clone https://github.com/intracom-telecom-sdn/mtcbench.git
-mtcbench/deploy/docker/provision.sh
-# TODO: remove workaround for build issue with mtcbench
-# when mtcbench dependency build correctly
-# https://github.com/intracom-telecom-sdn/mtcbench/issues/10
-mtcbench/build_mtcbench.sh || true
-cd mtcbench/oflops/cbench
-make
-cp cbench /usr/local/bin/
-
-echo '---> Installing exabgp'
-apt-get install exabgp
-
-# Install vlan for vlan based tests in VTN suites
-apt-get install vlan
-
-# Install netaddr package which is needed by some custom mininet topologies
-apt-get install python-netaddr
--- /dev/null
+---
+- import_playbook: ../common-packer/provision/baseline.yaml
+
+- hosts: all
+ become_user: root
+ become_method: sudo
+
+ pre_tasks:
+ - include_role: name=lfit.system-update
+
+ tasks:
+ - name: 'Install OpenVSwitch {{ovs_version}}'
+ block:
+ - name: 'Install dependencies required for OpenVSwitch {{ovs_version}}'
+ apt: 'name={{item}} state=present'
+ with_items:
+ - dh-autoreconf
+ - debhelper
+ - autoconf
+ - automake
+ - libssl-dev
+ - pkg-config
+ - bzip2
+ - openssl
+ - python-all
+ - procps
+ - python-qt4
+ - python-zopeinterface
+ - python-twisted-conch
+ become: true
+ - name: 'Install OpenVSwitch {{ovs_version}}'
+ apt: 'name={{item}} state=present'
+ with_items:
+ - openvswitch-switch
+ - openvswitch-vtep
+ become: true
+ - name: Enable openvswitch-switch service
+ systemd:
+ name: openvswitch-switch
+ enabled: true
+ masked: false
+ become: true
+ - name: Enable openvswitch-vtep service
+ systemd:
+ name: openvswitch-vtep
+ enabled: true
+ masked: false
+ become: true
+
+ - name: Install Mininet
+ apt: name=mininet state=present
+ become: true
+
+ - name: Install exabgp
+ apt: name=exabgp state=present
+ become: true
+
+ - name: Install vlan for vlan based tests in VTN suites
+ apt: name=vlan state=present
+ become: true
+
+ - name: Install python-netaddr for custom mininet topologies
+ apt: name=python-netaddr state=present
+ become: true
+
+ post_tasks:
+ - name: System Reseal
+ script: ../common-packer/provision/system-reseal.sh
+ become: true
{
"variables": {
+ "ansible_roles_path": ".galaxy",
"base_image": null,
"distro": null,
"cloud_network": null,
},
"builders": [
{
- "type": "openstack",
- "region": "ca-ymq-1",
- "availability_zone": "ca-ymq-2",
- "ssh_username": "{{user `ssh_user`}}",
- "ssh_proxy_host": "{{user `ssh_proxy_host`}}",
+ "name": "vexxhost",
"image_name": "ZZCI - {{user `distro`}} - mininet-ovs-25 - {{isotime \"20060102-150405.000\"}}",
"instance_name": "{{user `distro`}}-mininet-ovs-25-{{uuid}}",
"source_image_name": "{{user `base_image`}}",
- "flavor": "v1-standard-1",
+ "type": "openstack",
+ "region": "ca-ymq-1",
+ "availability_zone": "ca-ymq-2",
"networks": [
"{{user `cloud_network`}}"
],
"user_data_file": "{{user `cloud_user_data`}}",
+ "ssh_username": "{{user `ssh_user`}}",
+ "ssh_proxy_host": "{{user `ssh_proxy_host`}}",
+ "flavor": "v1-standard-1",
"metadata": {
"ci_managed": "yes"
}
{
"type": "shell",
"scripts": [
- "provision/baseline.sh",
- "provision/mininet-ovs-2.5.sh",
- "provision/system_reseal_local_env.sh",
- "provision/system_reseal.sh"
+ "common-packer/provision/install-python.sh"
],
"execute_command": "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else {{ .Vars }} sudo -E '{{ .Path }}'; fi"
+ },
+ {
+ "type": "shell-local",
+ "command": "./common-packer/ansible-galaxy.sh {{user `ansible_roles_path`}}"
+ },
+ {
+ "type": "ansible",
+ "playbook_file": "provision/mininet-ovs-2.5.yaml",
+ "ansible_env_vars": [
+ "ANSIBLE_NOCOWS=1",
+ "ANSIBLE_PIPELINING=True",
+ "ANSIBLE_ROLES_PATH={{user `ansible_roles_path`}}",
+ "ANSIBLE_CALLBACK_WHITELIST=profile_tasks",
+ "ANSIBLE_STDOUT_CALLBACK=debug"
+ ]
}
]
}