mirror of
https://github.com/jcwimer/startup-infrastructure
synced 2026-03-24 22:34:42 +00:00
Create client machine and set up ssh between nodes
This commit is contained in:
57
Vagrantfile
vendored
57
Vagrantfile
vendored
@@ -1,23 +1,36 @@
|
|||||||
Vagrant.configure("2") do |config|
|
Vagrant.configure("2") do |config|
|
||||||
|
|
||||||
config.vm.define "bootstrap" do |bootstrap|
|
config.vm.define "bootstrap" do |bootstrap|
|
||||||
bootstrap.vm.box = "ubuntu/bionic64"
|
bootstrap.vm.box = "ubuntu/bionic64"
|
||||||
bootstrap.vm.hostname = "bootstrap"
|
bootstrap.vm.hostname = "bootstrap"
|
||||||
bootstrap.vm.network "private_network", ip: "192.168.254.2"
|
bootstrap.vm.network "private_network", ip: "192.168.254.2"
|
||||||
bootstrap.vm.provider "virtualbox" do |v|
|
bootstrap.vm.provision :shell, path: "tests/files/provision-script.sh"
|
||||||
v.memory = 1024
|
bootstrap.vm.provider "virtualbox" do |v|
|
||||||
v.cpus = 1
|
v.memory = 1024
|
||||||
end
|
v.cpus = 1
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
config.vm.define "worker1" do |worker1|
|
config.vm.define "worker1" do |worker1|
|
||||||
worker1.vm.box = "ubuntu/bionic64"
|
worker1.vm.box = "ubuntu/bionic64"
|
||||||
worker1.vm.hostname = "worker1"
|
worker1.vm.hostname = "worker1"
|
||||||
worker1.vm.network "private_network", ip: "192.168.254.3"
|
worker1.vm.network "private_network", ip: "192.168.254.3"
|
||||||
worker1.vm.provider "virtualbox" do |v|
|
worker1.vm.provision :shell, path: "tests/files/provision-script.sh"
|
||||||
v.memory = 1024
|
worker1.vm.provider "virtualbox" do |v|
|
||||||
v.cpus = 1
|
v.memory = 1024
|
||||||
end
|
v.cpus = 1
|
||||||
end
|
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
|
end
|
||||||
10
tests/files/install-pip.sh
Normal file
10
tests/files/install-pip.sh
Normal file
@@ -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
|
||||||
6
tests/files/provision-script.sh
Normal file
6
tests/files/provision-script.sh
Normal file
@@ -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
|
||||||
27
tests/files/test_rsa
Normal file
27
tests/files/test_rsa
Normal file
@@ -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-----
|
||||||
1
tests/files/test_rsa.pub
Normal file
1
tests/files/test_rsa.pub
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYa9zstumlg7XkKoNrJMlIN/zteqMA9J4GjuZA7r0xfMPrz4CglxzYKd/BhBpwp/HhU+vSR6vBa15kRODHdPZ+T1oXzMXAmMT3R2ZJRqF280Hsx9sK0X+FZWM84e4a1zQUrxuWyWJ4kKIiaX6DBAmhy8zHNvQ0c4Nk1exfwRicojaze71qrexSas4FHWaI4usC/g3mMKfiML/QX0UWW/G+D8qrg3cK3zClG916XlY/p1h9SWantqz75ea33TtmDNW6iCraKSjVeDGfzhshJsmQ7+/Rr/L4/s7hdpwTqdjSlJTIi61eBxcpDfMWBmsHOMZgnsTZ3wrdYXo70k44moA7 vagrant@test
|
||||||
@@ -11,11 +11,13 @@ function main {
|
|||||||
function run-tests {
|
function run-tests {
|
||||||
trap "destroy-infrastructure; exit 1" ERR
|
trap "destroy-infrastructure; exit 1" ERR
|
||||||
echo Building vagrant infrastructure
|
echo Building vagrant infrastructure
|
||||||
test "Building infrastructure with vagrant up should not fail." \
|
vagrant up
|
||||||
"vagrant up > /dev/null"
|
|
||||||
|
|
||||||
test "Running command on a vagrant node should not fail." \
|
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 {
|
function destroy-infrastructure {
|
||||||
|
|||||||
Reference in New Issue
Block a user