Hi guys,
I'm still new to vagrant and I'm trying to pull up a jenkins, svn instance
and a couple of clients and that's all fine but I'm then trying to push the
jenkins root ssh key out so it can connect to the other boxes pretty much
straight away, and that's where I'm failing.
I'm trying to set a variable depending on the output of a cat inside the
box and it doesn't work, the other boxes just get a blank authorized_keys.
I'm sure there's a way to do this but I can't see it. I tried putting a
"puts" at the end to print the variable but vagrant doesn't seem to run a
puts like standard ruby would.
Here's my vagrantfile. I've bolded the non-working bits. Thanks in advance.
# -*- mode: ruby -*-
# vi: set ft=ruby :
#
SUBNET="10.0.10"
#
vmcount=1
Vagrant.configure(2) do |config|
jenkins = "#{SUBNET}.100"
subversion = "#{SUBNET}.150"
# Jenkins box
$jenkinsInstall= <<SCRIPT
wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo
apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ >
/etc/apt/sources.list.d/jenkins.list'
sudo apt-get update -y
sudo apt-get install jenkins -y
sudo ssh-keygen -b 2048 -t rsa -f /root/.ssh/id_rsa -q -N ""
systemctl stop jenkins
systemctl start jenkins
SCRIPT
config.vm.define "jenkins_server" do |j|
j.vm.provider "virtualbox" do |v|
v.name = "Jenkins"
end
j.vm.box = "mokote/debian-8"
j.vm.network "private_network", ip: "#{jenkins}"
j.vm.network :forwarded_port, guest: 8080, host: 8082
j.vm.hostname = "jenkins.keef.local"
j.vm.provision "shell", inline: $jenkinsInstall
* $ssh_pub_key = j.vm.provision "shell", inline: "sudo cat
/root/.ssh/id_rsa.pub"*
end
# subversion box
$subversionInstall= <<SCRIPT
sudo apt-get install subversion -y
sudo mkdir /svn-repo
sudo chmod 777 /svn-repo
sudo svnadmin create /svn-repo
sudo svnserve -d
sudo mkdir /root/.ssh/
SCRIPT
config.vm.define "subversion_server" do |s|
s.vm.provider "virtualbox" do |v|
v.name = "Subversion"
end
s.vm.box = "mokote/debian-8"
s.vm.network "private_network", ip: "#{subversion}"
s.vm.network :forwarded_port, guest: 3690, host: 3690
s.vm.hostname = "subversion.keef.local"
s.vm.provision "shell", inline: $subversionInstall
* s.vm.provision "shell", inline: "sudo echo #{$ssh_pub_key} >>
/root/.ssh/authorized_keys"*
end
# generic clients
$clientInstall= <<SCRIPT
sudo yum install -y subversion ruby
sudo mkdir /root/.ssh/
SCRIPT
(1..vmcount.to_i).each do |host|
hosts = "node#{host}.keef.local"
config.vm.define hosts do |cl|
cl.vm.provider "virtualbox" do |v|
v.name = "client#{host}"
end
cl.vm.box = "chef/centos-7.0"
cl.vm.hostname = hosts
cl.vm.network "private_network", ip: "#{SUBNET}.#{host + 10}"
cl.vm.provision "shell", inline: $clientInstall
* cl.vm.provision "shell", inline: "sudo echo #{$ssh_pub_key} >>
/root/.ssh/authorized_keys"*
end
end
end
--
This mailing list is governed under the HashiCorp Community Guidelines -
https://www.hashicorp.com/community-guidelines.html. Behavior in violation of
those guidelines may result in your removal from this mailing list.
GitHub Issues: https://github.com/mitchellh/vagrant/issues
IRC: #vagrant on Freenode
---
You received this message because you are subscribed to the Google Groups
"Vagrant" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vagrant-up/e3f77c35-ed98-418f-bcae-4f38310c4f6c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.