This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
технология_vagrant [2022/07/25 07:40] val [Внутри Vagrantfile] |
технология_vagrant [2022/07/26 06:46] val [С использованием внешних скриптов] |
||
---|---|---|---|
Line 103: | Line 103: | ||
config.vm.hostname = "node1.corpX.un" | config.vm.hostname = "node1.corpX.un" | ||
| | ||
+ | ### /My config ### | ||
+ | |||
### My provision ### | ### My provision ### | ||
| | ||
Line 124: | Line 126: | ||
SHELL | SHELL | ||
+ | ### /My provision ### | ||
... | ... | ||
Line 137: | Line 140: | ||
</code><code> | </code><code> | ||
#sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config | #sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config | ||
+ | #echo 'root:strongpassword' | chpasswd | ||
timedatectl set-timezone Europe/Moscow | timedatectl set-timezone Europe/Moscow | ||
Line 158: | Line 162: | ||
</code><code> | </code><code> | ||
... | ... | ||
+ | ### My provision ### | ||
+ | |||
config.vm.provision "provision_once", type: "shell", run: "once", path: "provision_once.sh" | config.vm.provision "provision_once", type: "shell", run: "once", path: "provision_once.sh" | ||
config.vm.provision "provision_onstart", type: "shell", run: "always", path: "provision_onstart.sh" | config.vm.provision "provision_onstart", type: "shell", run: "always", path: "provision_onstart.sh" | ||
+ | |||
+ | ### /My provision ### | ||
... | ... | ||
</code><code> | </code><code> | ||
Line 177: | Line 185: | ||
ansible.playbook = "provision_docker.yml" | ansible.playbook = "provision_docker.yml" | ||
end | end | ||
+ | ... | ||
</code><code> | </code><code> | ||
$ vagrant provision --provision-with provision_docker | $ vagrant provision --provision-with provision_docker | ||
Line 201: | Line 210: | ||
Vagrant.configure("2") do |config| | Vagrant.configure("2") do |config| | ||
- | config.vm.define "node3" do |node1| | + | ### My config ### |
+ | |||
+ | config.vm.define "node1" do |node1| | ||
node1.vm.network "private_network", ip: "192.168.X.210" | node1.vm.network "private_network", ip: "192.168.X.210" | ||
end | end | ||
- | config.vm.define "node4" do |node2| | + | config.vm.define "node2" do |node2| |
node2.vm.network "private_network", ip: "192.168.X.220" | node2.vm.network "private_network", ip: "192.168.X.220" | ||
end | end | ||
- | config.vm.define "node5" do |node3| | + | config.vm.define "node3" do |node3| |
node3.vm.network "private_network", ip: "192.168.X.230" | node3.vm.network "private_network", ip: "192.168.X.230" | ||
end | end | ||
+ | | ||
+ | ### /My config ### | ||
... | ... | ||
</code> | </code> | ||
Line 249: | Line 262: | ||
Vagrant.configure("2") do |config| | Vagrant.configure("2") do |config| | ||
+ | ### My config ### | ||
boxes.each do |opts| | boxes.each do |opts| | ||
config.vm.define opts[:name] do |config| | config.vm.define opts[:name] do |config| | ||
Line 271: | Line 285: | ||
end | end | ||
end | end | ||
+ | |||
+ | ### /My config ### | ||
+ | |||
... | ... | ||
+ | |||
end | end | ||
</code> | </code> | ||
Line 285: | Line 303: | ||
[ | [ | ||
{ | { | ||
- | "name": "node3", | + | "name": "node1", |
- | "ip": "192.168.X.3", | + | "ip": "192.168.X.210", |
"vbox_config": [ | "vbox_config": [ | ||
- | { "--cpus": "1" }, | + | { "--cpus": "2" }, |
- | { "--memory": "1024" } | + | { "--memory": "2048" } |
] | ] | ||
}, | }, | ||
{ | { | ||
- | "name": "node4", | + | "name": "node2", |
- | "ip": "192.168.X.4", | + | "ip": "192.168.X.220", |
"vbox_config": [ | "vbox_config": [ | ||
- | { "--cpus": "1" }, | + | { "--cpus": "2" }, |
- | { "--memory": "1024" } | + | { "--memory": "2048" } |
] | ] | ||
}, | }, | ||
{ | { | ||
- | "name": "node5", | + | "name": "node3", |
- | "ip": "192.168.X.5", | + | "ip": "192.168.X.230", |
"vbox_config": [ | "vbox_config": [ | ||
- | { "--cpus": "1" }, | + | { "--cpus": "2" }, |
- | { "--memory": "1024" } | + | { "--memory": "2048" } |
] | ] | ||
} | } | ||
Line 313: | Line 331: | ||
</code><code> | </code><code> | ||
require 'json' | require 'json' | ||
- | boxes = JSON.parse(File.read('./addnodes.json')) | + | boxes = JSON.parse(File.read('./nodes.json')) |
Vagrant.configure("2") do |config| | Vagrant.configure("2") do |config| | ||
+ | |||
+ | ### My config ### | ||
boxes.each do |opts| | boxes.each do |opts| | ||
config.vm.define opts["name"] do |config| | config.vm.define opts["name"] do |config| | ||
- | config.vm.network "private_network", ip: opts["ip"], | + | config.vm.network "private_network", ip: opts["ip"] |
- | virtualbox__intnet: true | + | |
config.vm.hostname = opts["name"] | config.vm.hostname = opts["name"] | ||
Line 342: | Line 361: | ||
end | end | ||
end | end | ||
- | # config.vm.box = "debian/buster64" | ||
- | config.vm.box = "debian/bullseye64" | ||
- | config.vm.provision "shell", inline: <<-SHELL | + | ### /My config ### |
- | sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config | + | ... |
- | # sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config | + | |
- | systemctl restart sshd.service | + | |
- | echo 'vagrant:123' | chpasswd | + | |
- | + | ||
- | apt-get update | + | |
- | apt-get install -y net-tools | + | |
- | + | ||
- | cat <<EOF >/etc/resolv.conf | + | |
- | search corpX.un | + | |
- | nameserver 192.168.X.254 | + | |
- | EOF | + | |
- | + | ||
- | SHELL | + | |
- | + | ||
- | config.vm.provision "shell", run: "always", | + | |
- | inline: "route add default gw 192.168.X.254" | + | |
- | + | ||
- | config.vm.provision "shell", run: "always", | + | |
- | inline: "eval `route -n | awk '{ if ($8 ==\"eth0\" && $2 != \"0.0.0.0\") print \"route del default gw \" $2; }'`" | + | |
end | end |