aboutsummaryrefslogtreecommitdiffstats
path: root/resources/tools/testbed-setup/playbooks/files
diff options
context:
space:
mode:
authorCarsten Koester <ckoester@cisco.com>2016-05-08 01:27:47 -0400
committerDave Wallace <dwallacelf@gmail.com>2016-06-02 17:20:05 +0000
commitbca7bcede75d4fa3713a2317b87820d4d3439b7b (patch)
treebb122fd8298b30cefb79798706cfa4788054d5aa /resources/tools/testbed-setup/playbooks/files
parent55b4465a5c7ab8d8b340d67f1e11ba06a3ce39ea (diff)
Add documentation and files related to initial host setup
Change-Id: I73deeb79e57ac7eca208faa49d04be37c7034163 Signed-off-by: Carsten Koester <ckoester@cisco.com>
Diffstat (limited to 'resources/tools/testbed-setup/playbooks/files')
-rw-r--r--resources/tools/testbed-setup/playbooks/files/apt-sources.list61
-rw-r--r--resources/tools/testbed-setup/playbooks/files/cpufrequtils1
-rw-r--r--resources/tools/testbed-setup/playbooks/files/grub34
-rw-r--r--resources/tools/testbed-setup/playbooks/files/hostname1
-rw-r--r--resources/tools/testbed-setup/playbooks/files/hosts7
-rw-r--r--resources/tools/testbed-setup/playbooks/files/interfaces14
-rw-r--r--resources/tools/testbed-setup/playbooks/files/irqbalance6
-rw-r--r--resources/tools/testbed-setup/playbooks/files/salt.b6427
-rw-r--r--resources/tools/testbed-setup/playbooks/files/salt/etc/salt/minion.d/testlocal.conf3
-rw-r--r--resources/tools/testbed-setup/playbooks/files/salt/srv/salt/ckoester/nfs-server.sls3
-rw-r--r--resources/tools/testbed-setup/playbooks/files/salt/srv/salt/ckoester/nfs-server/configure.sls31
-rw-r--r--resources/tools/testbed-setup/playbooks/files/salt/srv/salt/ckoester/nfs-server/files/exports12
-rw-r--r--resources/tools/testbed-setup/playbooks/files/salt/srv/salt/ckoester/nfs-server/install.sls5
-rw-r--r--resources/tools/testbed-setup/playbooks/files/sudoers1
-rw-r--r--resources/tools/testbed-setup/playbooks/files/sudoers_jenkins-in1
-rw-r--r--resources/tools/testbed-setup/playbooks/files/sudoers_virl1
-rw-r--r--resources/tools/testbed-setup/playbooks/files/ttyS010
-rw-r--r--resources/tools/testbed-setup/playbooks/files/virl/id_rsa_virl27
-rw-r--r--resources/tools/testbed-setup/playbooks/files/virl/id_rsa_virl.pub1
-rw-r--r--resources/tools/testbed-setup/playbooks/files/virl/ssh_environment1
-rw-r--r--resources/tools/testbed-setup/playbooks/files/virl/virl-bootstrap-wrapper59
21 files changed, 306 insertions, 0 deletions
diff --git a/resources/tools/testbed-setup/playbooks/files/apt-sources.list b/resources/tools/testbed-setup/playbooks/files/apt-sources.list
new file mode 100644
index 0000000000..b8ed057e14
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/apt-sources.list
@@ -0,0 +1,61 @@
+# deb http://us.archive.ubuntu.com/ubuntu/ trusty main restricted
+
+# deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates main restricted
+# deb http://security.ubuntu.com/ubuntu trusty-security main restricted
+
+# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
+# newer versions of the distribution.
+deb http://us.archive.ubuntu.com/ubuntu/ trusty main restricted
+deb-src http://us.archive.ubuntu.com/ubuntu/ trusty main restricted
+
+## Major bug fix updates produced after the final release of the
+## distribution.
+deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates main restricted
+deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates main restricted
+
+## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
+## team. Also, please note that software in universe WILL NOT receive any
+## review or updates from the Ubuntu security team.
+deb http://us.archive.ubuntu.com/ubuntu/ trusty universe
+deb-src http://us.archive.ubuntu.com/ubuntu/ trusty universe
+deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates universe
+deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates universe
+
+## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
+## team, and may not be under a free licence. Please satisfy yourself as to
+## your rights to use the software. Also, please note that software in
+## multiverse WILL NOT receive any review or updates from the Ubuntu
+## security team.
+deb http://us.archive.ubuntu.com/ubuntu/ trusty multiverse
+deb-src http://us.archive.ubuntu.com/ubuntu/ trusty multiverse
+deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
+deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
+
+## N.B. software from this repository may not have been tested as
+## extensively as that contained in the main release, although it includes
+## newer versions of some applications which may provide useful features.
+## Also, please note that software in backports WILL NOT receive any review
+## or updates from the Ubuntu security team.
+deb http://us.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
+deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
+
+deb http://security.ubuntu.com/ubuntu trusty-security main restricted
+deb-src http://security.ubuntu.com/ubuntu trusty-security main restricted
+deb http://security.ubuntu.com/ubuntu trusty-security universe
+deb-src http://security.ubuntu.com/ubuntu trusty-security universe
+deb http://security.ubuntu.com/ubuntu trusty-security multiverse
+deb-src http://security.ubuntu.com/ubuntu trusty-security multiverse
+
+## Uncomment the following two lines to add software from Canonical's
+## 'partner' repository.
+## This software is not part of Ubuntu, but is offered by Canonical and the
+## respective vendors as a service to Ubuntu users.
+# deb http://archive.canonical.com/ubuntu trusty partner
+# deb-src http://archive.canonical.com/ubuntu trusty partner
+
+## Uncomment the following two lines to add software from Ubuntu's
+## 'extras' repository.
+## This software is not part of Ubuntu, but is offered by third-party
+## developers who want to ship their latest software.
+# deb http://extras.ubuntu.com/ubuntu trusty main
+# deb-src http://extras.ubuntu.com/ubuntu trusty main
diff --git a/resources/tools/testbed-setup/playbooks/files/cpufrequtils b/resources/tools/testbed-setup/playbooks/files/cpufrequtils
new file mode 100644
index 0000000000..03070fefe1
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/cpufrequtils
@@ -0,0 +1 @@
+GOVERNOR="performance"
diff --git a/resources/tools/testbed-setup/playbooks/files/grub b/resources/tools/testbed-setup/playbooks/files/grub
new file mode 100644
index 0000000000..d4e27b3f0f
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/grub
@@ -0,0 +1,34 @@
+# If you change this file, run 'update-grub' afterwards to update
+# /boot/grub/grub.cfg.
+# For full documentation of the options in this file, see:
+# info -f grub -n 'Simple configuration'
+
+GRUB_DEFAULT=0
+GRUB_TIMEOUT=10
+GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
+GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8"
+GRUB_CMDLINE_LINUX=""
+
+# Uncomment to enable BadRAM filtering, modify to suit your needs
+# This works with Linux (no patch required) and with any kernel that obtains
+# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
+#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
+
+# Uncomment to disable graphical terminal (grub-pc only)
+#GRUB_TERMINAL=console
+GRUB_TERMINAL=serial
+GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
+
+# The resolution used on graphical terminal
+# note that you can use only modes which your graphic card supports via VBE
+# you can see them in real GRUB with the command `vbeinfo'
+#GRUB_GFXMODE=640x480
+
+# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
+#GRUB_DISABLE_LINUX_UUID=true
+
+# Uncomment to disable generation of recovery mode menu entries
+#GRUB_DISABLE_RECOVERY="true"
+
+# Uncomment to get a beep at grub start
+#GRUB_INIT_TUNE="480 440 1"
diff --git a/resources/tools/testbed-setup/playbooks/files/hostname b/resources/tools/testbed-setup/playbooks/files/hostname
new file mode 100644
index 0000000000..56baac7265
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/hostname
@@ -0,0 +1 @@
+{{ hostname }}
diff --git a/resources/tools/testbed-setup/playbooks/files/hosts b/resources/tools/testbed-setup/playbooks/files/hosts
new file mode 100644
index 0000000000..82dee7b4f7
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/hosts
@@ -0,0 +1,7 @@
+127.0.0.1 localhost
+{{ ansible_default_ipv4["address"] }} {{ hostname }}.linuxfoundation.org {{ hostname }}
+
+# The following lines are desirable for IPv6 capable hosts
+::1 localhost ip6-localhost ip6-loopback
+ff02::1 ip6-allnodes
+ff02::2 ip6-allrouters
diff --git a/resources/tools/testbed-setup/playbooks/files/interfaces b/resources/tools/testbed-setup/playbooks/files/interfaces
new file mode 100644
index 0000000000..734d8cd18f
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/interfaces
@@ -0,0 +1,14 @@
+# This file describes the network interfaces available on your system
+# and how to activate them. For more information, see interfaces(5).
+
+# The loopback network interface
+auto lo
+iface lo inet loopback
+
+# The primary network interface
+auto {{ ansible_default_ipv4["interface"] }}
+iface {{ ansible_default_ipv4["interface"] }} inet static
+ address {{ ansible_default_ipv4["address"] }}
+ netmask {{ ansible_default_ipv4["netmask"] }}
+ gateway {{ ansible_default_ipv4["gateway"] }}
+ dns-nameservers 199.204.44.24 199.204.47.54
diff --git a/resources/tools/testbed-setup/playbooks/files/irqbalance b/resources/tools/testbed-setup/playbooks/files/irqbalance
new file mode 100644
index 0000000000..84fb5f17e2
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/irqbalance
@@ -0,0 +1,6 @@
+#Configuration for the irqbalance daemon
+
+#Should irqbalance be enabled?
+ENABLED="0"
+#Balance the IRQs only once?
+ONESHOT="0"
diff --git a/resources/tools/testbed-setup/playbooks/files/salt.b64 b/resources/tools/testbed-setup/playbooks/files/salt.b64
new file mode 100644
index 0000000000..5e76a8583b
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/salt.b64
@@ -0,0 +1,27 @@
+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
+hoaGhoaGhsa3hH8BeOCWxQBQAAA=
diff --git a/resources/tools/testbed-setup/playbooks/files/salt/etc/salt/minion.d/testlocal.conf b/resources/tools/testbed-setup/playbooks/files/salt/etc/salt/minion.d/testlocal.conf
new file mode 100644
index 0000000000..fce910cc0b
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/salt/etc/salt/minion.d/testlocal.conf
@@ -0,0 +1,3 @@
+file_roots:
+ base:
+ - /srv/salt/
diff --git a/resources/tools/testbed-setup/playbooks/files/salt/srv/salt/ckoester/nfs-server.sls b/resources/tools/testbed-setup/playbooks/files/salt/srv/salt/ckoester/nfs-server.sls
new file mode 100644
index 0000000000..bf3e47f9b3
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/salt/srv/salt/ckoester/nfs-server.sls
@@ -0,0 +1,3 @@
+include:
+ - ckoester.nfs-server.install
+ - ckoester.nfs-server.configure
diff --git a/resources/tools/testbed-setup/playbooks/files/salt/srv/salt/ckoester/nfs-server/configure.sls b/resources/tools/testbed-setup/playbooks/files/salt/srv/salt/ckoester/nfs-server/configure.sls
new file mode 100644
index 0000000000..ce362a38b2
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/salt/srv/salt/ckoester/nfs-server/configure.sls
@@ -0,0 +1,31 @@
+/nfs:
+ file.directory:
+ - user: root
+ - group: root
+ - mode: 755
+
+/nfs/scratch:
+ file.directory:
+ - user: root
+ - group: root
+ - mode: 1777
+
+/nfs/ro:
+ file.directory:
+ - user: virl
+ - group: virl
+ - mode: 755
+
+/etc/exports:
+ file.managed:
+ - mode: 644
+ - template: jinja
+ - source: "salt://ckoester/nfs-server/files/exports"
+
+nfs_server_running:
+ service.running:
+ - name: nfs-kernel-server
+
+update_exports:
+ cmd.run:
+ - name: exportfs -ra
diff --git a/resources/tools/testbed-setup/playbooks/files/salt/srv/salt/ckoester/nfs-server/files/exports b/resources/tools/testbed-setup/playbooks/files/salt/srv/salt/ckoester/nfs-server/files/exports
new file mode 100644
index 0000000000..23802be486
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/salt/srv/salt/ckoester/nfs-server/files/exports
@@ -0,0 +1,12 @@
+# /etc/exports: the access control list for filesystems which may be exported
+# to NFS clients. See exports(5).
+#
+# Example for NFSv2 and NFSv3:
+# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
+#
+# Example for NFSv4:
+# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
+# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
+#
+/nfs/scratch {{ salt['pillar.get']('virl:l2_network', salt['grains.get']('l2_network', '172.16.1.0/24' )) }}(rw,no_root_squash,no_subtree_check) {{ salt['pillar.get']('virl:l2_network2', salt['grains.get']('l2_network2', '172.16.2.0/24' )) }}(rw,no_root_squash,no_subtree_check) {{ salt['pillar.get']('virl:l3_network', salt['grains.get']('l3_network', '172.16.3.0/24' )) }}(rw,no_root_squash,no_subtree_check)
+/nfs/ro *(ro,no_root_squash,no_subtree_check)
diff --git a/resources/tools/testbed-setup/playbooks/files/salt/srv/salt/ckoester/nfs-server/install.sls b/resources/tools/testbed-setup/playbooks/files/salt/srv/salt/ckoester/nfs-server/install.sls
new file mode 100644
index 0000000000..0f136346f8
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/salt/srv/salt/ckoester/nfs-server/install.sls
@@ -0,0 +1,5 @@
+nfs-kernel-server install:
+ pkg.installed:
+ - skip_verify: True
+ - refresh: False
+ - name: nfs-kernel-server
diff --git a/resources/tools/testbed-setup/playbooks/files/sudoers b/resources/tools/testbed-setup/playbooks/files/sudoers
new file mode 100644
index 0000000000..367c390130
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/sudoers
@@ -0,0 +1 @@
+testuser ALL=(root) NOPASSWD:ALL
diff --git a/resources/tools/testbed-setup/playbooks/files/sudoers_jenkins-in b/resources/tools/testbed-setup/playbooks/files/sudoers_jenkins-in
new file mode 100644
index 0000000000..1797c2c636
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/sudoers_jenkins-in
@@ -0,0 +1 @@
+jenkins-in ALL=(root) NOPASSWD: /bin/rm -fr /scratch/*, /bin/rm -fr /nfs/scratch/*
diff --git a/resources/tools/testbed-setup/playbooks/files/sudoers_virl b/resources/tools/testbed-setup/playbooks/files/sudoers_virl
new file mode 100644
index 0000000000..e0cf48ac10
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/sudoers_virl
@@ -0,0 +1 @@
+virl ALL=(root) NOPASSWD:ALL
diff --git a/resources/tools/testbed-setup/playbooks/files/ttyS0 b/resources/tools/testbed-setup/playbooks/files/ttyS0
new file mode 100644
index 0000000000..0ed8550190
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/ttyS0
@@ -0,0 +1,10 @@
+# ttyS0 - getty
+#
+# This service maintains a getty on ttyS0 from the point the system is
+# started until it is shut down again.
+
+start on stopped rc RUNLEVEL=[12345]
+stop on runlevel [!12345]
+
+respawn
+exec /sbin/getty -L 115200 ttyS0 vt102
diff --git a/resources/tools/testbed-setup/playbooks/files/virl/id_rsa_virl b/resources/tools/testbed-setup/playbooks/files/virl/id_rsa_virl
new file mode 100644
index 0000000000..b4c3de745b
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/virl/id_rsa_virl
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpgIBAAKCAQEAwUDlTpzSHpwLQotZOFS4AgcPNEWCnP1AB2hWFmvI+8Kah/gb
+v8ruZU9RqhPs56tyKzxbhvNkY4VbH5F1GilHZu3mLqzM4KfghMmaeMEjO1T7BYYd
+vuBfTvIluljfQ2vAlnYrDwn+ClxJk81m0pDgvrLEX4qVVh2sGh7UEkYy5r82DNa2
+4VjzPB1J/c8a9zP8FoZUhYIzF4FLvRMjUADpbMXgJMsGpaZLmz95ap0Eot7vb1Cc
+1LvF97iyBCrtIOSKRKA50ZhLGjMKmOwnYU+cP5718tbproDVi6VJOo7zeuXyetMs
+8YBl9kWblWG9BqP9jctFvsmi5G7hXgq1Y8u+DwIDAQABAoIBAQC/W4E0DHjLMny7
+0bvw2YKzD0Zw3fttdB94tkm4PdZv5MybooPnsAvLaXVV0hEdfVi5kzSWNl/LY/tN
+EP1BgGphc2QgB59/PPxGwFIjDCvUzlsZpynBHe+B/qh5ExNQcVvsIOqWI7DXlXaN
+0i/khOzmJ6HncRRah1spKimYRsaUUDskyg7q3QqMWVaqBbbMvLs/w7ZWd/zoDqCU
+MY/pCI6hkB3QbRo0OdiZLohphBl2ShABTwjvVyyKL5UA4jAEneJrhH5gWVLXnfgD
+p62W5CollKEYblC8mUkPxpP7Qo277zw3xaq+oktIZhc5SUEUd7nJZtNqVAHqkItW
+79VmpKyxAoGBAPfU+kqNPaTSvp+x1n5sn2SgipzDtgi9QqNmC4cjtrQQaaqI57SG
+OHw1jX8i7L2G1WvVtkHg060nlEVo5n65ffFOqeVBezLVJ7ghWI8U+oBiJJyQ4boD
+GJVNsoOSUQ0rtuGd9eVwfDk3ol9aCN0KK53oPfIYli29pyu4l095kg11AoGBAMef
+bPEMBI/2XmCPshLSwhGFl+dW8d+Klluj3CUQ/0vUlvma3dfBOYNsIwAgTP0iIUTg
+8DYE6KBCdPtxAUEI0YAEAKB9ry1tKR2NQEIPfslYytKErtwjAiqSi0heM6+zwEzu
+f54Z4oBhsMSL0jXoOMnu+NZzEc6EUdQeY4O+jhjzAoGBAIogC3dtjMPGKTP7+93u
+UE/XIioI8fWg9fj3sMka4IMu+pVvRCRbAjRH7JrFLkjbUyuMqs3Arnk9K+gbdQt/
++m95Njtt6WoFXuPCwgbM3GidSmZwYT4454SfDzVBYScEDCNm1FuR+8ov9bFLDtGT
+D4gsngnGJj1MDFXTxZEn4nzZAoGBAKCg4WmpUPaCuXibyB+rZavxwsTNSn2lJ83/
+sYJGBhf/raiV/FLDUcM1vYg5dZnu37RsB/5/vqxOLZGyYd7x+Jo5HkQGPnKgNwhn
+g8BkdZIRF8uEJqxOo0ycdOU7n/2O93swIpKWo5LIiRPuqqzj+uZKnAL7vuVdxfaY
+qVz2daMPAoGBALgaaKa3voU/HO1PYLWIhFrBThyJ+BQSQ8OqrEzC8AnegWFxRAM8
+EqrzZXl7ACUuo1dH0Eipm41j2+BZWlQjiUgq5uj8+yzy+EU1ZRRyJcOKzbDACeuD
+BpWWSXGBI5G4CppeYLjMUHZpJYeX1USULJQd2c4crLJKb76E8gz3Z9kN
+-----END RSA PRIVATE KEY-----
diff --git a/resources/tools/testbed-setup/playbooks/files/virl/id_rsa_virl.pub b/resources/tools/testbed-setup/playbooks/files/virl/id_rsa_virl.pub
new file mode 100644
index 0000000000..0ef508c8a1
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/virl/id_rsa_virl.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBQOVOnNIenAtCi1k4VLgCBw80RYKc/UAHaFYWa8j7wpqH+Bu/yu5lT1GqE+znq3IrPFuG82RjhVsfkXUaKUdm7eYurMzgp+CEyZp4wSM7VPsFhh2+4F9O8iW6WN9Da8CWdisPCf4KXEmTzWbSkOC+ssRfipVWHawaHtQSRjLmvzYM1rbhWPM8HUn9zxr3M/wWhlSFgjMXgUu9EyNQAOlsxeAkywalpkubP3lqnQSi3u9vUJzUu8X3uLIEKu0g5IpEoDnRmEsaMwqY7CdhT5w/nvXy1umugNWLpUk6jvN65fJ60yzxgGX2RZuVYb0Go/2Ny0W+yaLkbuFeCrVjy74P virl@tb4-virl
diff --git a/resources/tools/testbed-setup/playbooks/files/virl/ssh_environment b/resources/tools/testbed-setup/playbooks/files/virl/ssh_environment
new file mode 100644
index 0000000000..5ec594d181
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/virl/ssh_environment
@@ -0,0 +1 @@
+PATH=/home/jenkins-in/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
diff --git a/resources/tools/testbed-setup/playbooks/files/virl/virl-bootstrap-wrapper b/resources/tools/testbed-setup/playbooks/files/virl/virl-bootstrap-wrapper
new file mode 100644
index 0000000000..e2d0a5fd08
--- /dev/null
+++ b/resources/tools/testbed-setup/playbooks/files/virl/virl-bootstrap-wrapper
@@ -0,0 +1,59 @@
+#!/usr/bin/expect
+
+if ![ string equal $::env(USER) "root"] {
+ puts "Please re-run this script as root."
+ exit 1
+}
+
+log_file /tmp/virl-bootstrap.log
+set timeout 3600
+
+spawn ./virl-bootstrap.py
+expect "Which step are you on"
+send "1\r"
+
+expect "Salt master"
+send "us-1.virl.info,us-2.virl.info,us-4.virl.info\r"
+
+expect "Which step are you on"
+send "2\r"
+
+expect "Salt id"
+send "{{ hostname }}\r"
+expect "Salt domain name"
+send "linuxfoundation.org\r"
+
+expect "Which step are you on"
+send "3\r"
+
+expect "System hostname"
+send "{{ hostname }}\r"
+expect "System Domain name"
+send "linuxfoundation.org\r"
+
+expect "Which step are you on"
+send "4\r"
+
+puts "*******************STEP 6*************************************************************************************************************************************************"
+expect "Which step are you on"
+send "6\r"
+expect "Salt installed"
+
+puts "*******************STEP 8*************************************************************************************************************************************************"
+expect "Which step are you on"
+send "8\r"
+
+expect "Determining pillar cache"
+expect "True"
+
+puts "*******************STEP 9*************************************************************************************************************************************************"
+expect "Which step are you on"
+send "9\r"
+
+expect "Failed: 0"
+
+puts "*******************STEP 11*************************************************************************************************************************************************"
+expect "Which step are you on"
+send "11\r"
+
+expect eof