diff --git a/Vagrantfile b/Vagrantfile index 7501f6e..9bd535a 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -1,23 +1,36 @@ -Vagrant.configure("2") do |config| - - config.vm.define "bootstrap" do |bootstrap| - bootstrap.vm.box = "ubuntu/bionic64" - bootstrap.vm.hostname = "bootstrap" - bootstrap.vm.network "private_network", ip: "192.168.254.2" - bootstrap.vm.provider "virtualbox" do |v| - v.memory = 1024 - v.cpus = 1 - end - end - - - config.vm.define "worker1" do |worker1| - worker1.vm.box = "ubuntu/bionic64" - worker1.vm.hostname = "worker1" - worker1.vm.network "private_network", ip: "192.168.254.3" - worker1.vm.provider "virtualbox" do |v| - v.memory = 1024 - v.cpus = 1 - end - end +Vagrant.configure("2") do |config| + + config.vm.define "bootstrap" do |bootstrap| + bootstrap.vm.box = "ubuntu/bionic64" + bootstrap.vm.hostname = "bootstrap" + bootstrap.vm.network "private_network", ip: "192.168.254.2" + bootstrap.vm.provision :shell, path: "tests/files/provision-script.sh" + bootstrap.vm.provider "virtualbox" do |v| + v.memory = 1024 + v.cpus = 1 + end + end + + config.vm.define "worker1" do |worker1| + worker1.vm.box = "ubuntu/bionic64" + worker1.vm.hostname = "worker1" + worker1.vm.network "private_network", ip: "192.168.254.3" + worker1.vm.provision :shell, path: "tests/files/provision-script.sh" + worker1.vm.provider "virtualbox" do |v| + v.memory = 1024 + v.cpus = 1 + end + end + + config.vm.define "client" do |client| + client.vm.box = "ubuntu/bionic64" + client.vm.hostname = "client" + client.vm.network "private_network", ip: "192.168.254.4" + client.vm.provision :shell, path: "tests/files/install-pip.sh" + client.vm.provision :shell, path: "tests/files/provision-script.sh" + client.vm.provider "virtualbox" do |v| + v.memory = 512 + v.cpus = 1 + end + end end \ No newline at end of file diff --git a/tests/files/install-pip.sh b/tests/files/install-pip.sh new file mode 100644 index 0000000..71fe4e7 --- /dev/null +++ b/tests/files/install-pip.sh @@ -0,0 +1,10 @@ +#!/bin/bash +apt-get update -qq +apt-get install -y -qq \ + python-dev \ + python-pip \ + python-setuptools + +pip install --upgrade setuptools +pip install ez_setup +pip install pipenv \ No newline at end of file diff --git a/tests/files/provision-script.sh b/tests/files/provision-script.sh new file mode 100644 index 0000000..de442a8 --- /dev/null +++ b/tests/files/provision-script.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYa9zstumlg7XkKoNrJMlIN/zteqMA9J4GjuZA7r0xfMPrz4CglxzYKd/BhBpwp/HhU+vSR6vBa15kRODHdPZ+T1oXzMXAmMT3R2ZJRqF280Hsx9sK0X+FZWM84e4a1zQUrxuWyWJ4kKIiaX6DBAmhy8zHNvQ0c4Nk1exfwRicojaze71qrexSas4FHWaI4usC/g3mMKfiML/QX0UWW/G+D8qrg3cK3zClG916XlY/p1h9SWantqz75ea33TtmDNW6iCraKSjVeDGfzhshJsmQ7+/Rr/L4/s7hdpwTqdjSlJTIi61eBxcpDfMWBmsHOMZgnsTZ3wrdYXo70k44moA7 vagrant@test" >> /home/vagrant/.ssh/authorized_keys +cp /vagrant/tests/files/test_rsa /home/vagrant/test_rsa +chmod 600 /home/vagrant/test_rsa +chown vagrant:vagrant /home/vagrant/test_rsa \ No newline at end of file diff --git a/tests/files/test_rsa b/tests/files/test_rsa new file mode 100644 index 0000000..70eb376 --- /dev/null +++ b/tests/files/test_rsa @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEA2Gvc7LbppYO15CqDayTJSDf87XqjAPSeBo7mQO69MXzD68+A +oJcc2CnfwYQacKfx4VPr0kerwWteZETgx3T2fk9aF8zFwJjE90dmSUahdvNB7Mfb +CtF/hWVjPOHuGtc0FK8blslieJCiIml+gwQJocvMxzb0NHODZNXsX8EYnKI2s3u9 +aq3sUmrOBR1miOLrAv4N5jCn4jC/0F9FFlvxvg/Kq4N3Ct8wpRvdel5WP6dYfUlm +p7as++Xmt907ZgzVuogq2iko1Xgxn84bISbJkO/v0a/y+P7O4XacE6nY0pSUyIut +XgcXKQ3zFgZrBzjGYJ7E2d8K3WF6O9JOOJqAOwIDAQABAoIBAGYur1W4myKByHyd +MgWBjeOiQ7Jgp9vIo2AXUlGwJvXZoauSAnpQPtc1FieJVu5/7S1lcT+MhWTCbAPN +nY+vAr7qenAoR+pCdyUFuh640X2XJzZDuoEmHx59m1hgmApmN3nYn58XIH4qU9MJ +mikD3ARfdCVPJggpzgzrEDq5sgQpmEZnVhAj7j4pdwnbNgt7sTzpltiQvrdcUx/v +uUEoTRkdUJhwaJ8aItl958aGKq7wopd6c8zsuBLQlIDI1O/CNg7NrE47pvMkMpHo +eXXVGPA0wVHbDejhEKXnQCAW0W/k2J3BDJhoZG15FErDmRg25oInmT27U15LZ9YI +TKwzWqECgYEA9nuUL8RIkmTX+fJF3djfrKn4KWWF9qUbEHzx78byeK2WxP1magfZ +m4gVIbg+f6q6ix0/VvkA992kDTcnZGFi7iAWBi5j8XE8iDQCFvOdMXLDi9KqL/ID +XE2SbpwnKBZm1tf+a6U5nlHsZWkGn1qaESFqmSjJ0/lDeqdQ+bjTMusCgYEA4Mci +euHbIn8NoqE9UAbCmTVIrS2MbSYPUZZmh/GSaC70024nGjQVl3dQiYC7nTBrKfPC +H3CfcbHhUpqek+imLukaJdR7yAB5AJRE+hLcHR/0Zqe2JmgLZOK8ikPvdGzeY4Qb +wtKVDtPkW6HMT+p4lCleppJs+fyCOEG2oQO4c/ECgYAFJwwv+3Bw7v680N25B4GV +gHAZnW+xej4YmCQOmSAUebx/HbT4XnWkFLIsZEeaL516rv/V95qXk+CMDi0aohaJ +V85eDrY0I+PaDQxGIo2UrQt9bsfz/KEpWs3G1ijTY7R+pUFCSs/riVbhv9JNnn0+ +Am7SCNI/RiSs+bZtofl4RQKBgC2yzqPE/1RIGHGT7m8ysKWNW7U5qW8Xac3gkf/Z +cTaVNVk27+Q36pvcuhb6gSo4CdGBqVnS/9eRnom4vby8c+zdn19Jj9Ddp7wiaNOe +ufmB4aJtPm8YgBiGsGY74Zb9+0ioNyyou31EPw0SHAOzW8hjkMa0xksctyzQz1x0 +8S9BAoGBAKBt52EG2N5AdqAL2rFods7+J+wSZ09IOF4YVTMqDxow/QyHOPRB5tbk +p1TBlXb0p54A+C9cEKjT+/y5Bhf5sz1afUVlqkczcC2i5jiKW9A5dWCOQKe5C3nl +z4gkcWMFwz0PY60BCbdk13pKUcJX6M/Tluf7xuYl2t59C0CXN5WH +-----END RSA PRIVATE KEY----- diff --git a/tests/files/test_rsa.pub b/tests/files/test_rsa.pub new file mode 100644 index 0000000..a8b926a --- /dev/null +++ b/tests/files/test_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYa9zstumlg7XkKoNrJMlIN/zteqMA9J4GjuZA7r0xfMPrz4CglxzYKd/BhBpwp/HhU+vSR6vBa15kRODHdPZ+T1oXzMXAmMT3R2ZJRqF280Hsx9sK0X+FZWM84e4a1zQUrxuWyWJ4kKIiaX6DBAmhy8zHNvQ0c4Nk1exfwRicojaze71qrexSas4FHWaI4usC/g3mMKfiML/QX0UWW/G+D8qrg3cK3zClG916XlY/p1h9SWantqz75ea33TtmDNW6iCraKSjVeDGfzhshJsmQ7+/Rr/L4/s7hdpwTqdjSlJTIi61eBxcpDfMWBmsHOMZgnsTZ3wrdYXo70k44moA7 vagrant@test diff --git a/tests/vagrant-tests.sh b/tests/vagrant-tests.sh index a617cf0..d93d2fe 100644 --- a/tests/vagrant-tests.sh +++ b/tests/vagrant-tests.sh @@ -11,11 +11,13 @@ function main { function run-tests { trap "destroy-infrastructure; exit 1" ERR echo Building vagrant infrastructure - test "Building infrastructure with vagrant up should not fail." \ - "vagrant up > /dev/null" + vagrant up test "Running command on a vagrant node should not fail." \ - vagrant ssh bootstrap -c ls + "vagrant ssh client -c 'ls /vagrant'" + + test "Client vagrant machine can ssh into bootstrap." \ + "vagrant ssh client -c 'ssh -o StrictHostKeyChecking=no -i /home/vagrant/test_rsa vagrant@192.168.254.2 ls'" } function destroy-infrastructure {