Guia prático: Crie e configure máquinas virtuais com shell script
Instalação das dependências
echo > file
# -*- mode: ruby -*- # vi: set ft=ruby :
vms = {
}
vms = {
'debian-server' => { }
}
vms = {
'debian-server' => {'memory' => '512', 'cpus' => '1', 'ip' => '10', 'box' => 'debian/stretch64', 'provision' => 'debian-server.sh'},
'ubuntu-server' => {'memory' => '512', 'cpus' => '1', 'ip' => '11', 'box' => 'ubuntu/xenial64', 'provision' => 'ubuntu-server.sh'}
}
Vagrant.configure('2') do |config|
end
Vagrant.configure('2') do |config|
vms.each do |name, conf|
end
end
Vagrant.configure('2') do |config|
vms.each do |name, conf|
config.vm.define "#{name}" do |my|
my.vm.box = conf['box']
my.vm.hostname = "#{name}.example.com"
my.vm.network 'private_network', ip: "172.27.11.#{conf['ip']}"
my.vm.provision 'shell', path: "Provision/#{conf['provision']}"
my.vm.provider 'virtualbox' do |vb|
vb.memory = conf['memory']
vb.cpus = conf['cpus']
end
end
end
end
# -*- mode: ruby -*-
# vi: set ft=ruby :
vms = {
'debian-server' => {'memory' => '512', 'cpus' => '1', 'ip' => '10', 'box' => 'debian/stretch64', 'provision' => 'debian-server.sh'},
'ubuntu-server' => {'memory' => '512', 'cpus' => '1', 'ip' => '11', 'box' => 'ubuntu/xenial64', 'provision' => 'ubuntu-server.sh'}
}
Vagrant.configure('2') do |config|
vms.each do |name, conf|
config.vm.define "#{name}" do |my|
my.vm.box = conf['box']
my.vm.hostname = "#{name}.example.com"
my.vm.network 'private_network', ip: "172.27.11.#{conf['ip']}"
my.vm.provision 'shell', path: "Provision/#{conf['provision']}"
my.vm.provider 'virtualbox' do |vb|
vb.memory = conf['memory']
vb.cpus = conf['cpus']
end
end
end
end
touch debian-server.sh
Estrutura - Vagrantfile - Provision (Diretório) - vars.sh (arquivo com as funções e algumas variáveis) - debian-server.sh, ubuntu-server.sh (arquivos para o provisionamento)
arquivo com as funções e variáveis principais
#!/bin/bash
### vars.sh ####
USER='suporte'
PASS='4linux'
function addUsers {
#criando o usuário suporte
useradd -m -d "/home/${USER}" -p $(openssl passwd -1 ${PASS}) -s /bin/bash ${USER}
#alterando a senha do usuario vagrant
sudo usermod -p $(openssl passwd -1 ${PASS}) vagrant
#alterando a senha do root
sudo usermod -p $(openssl passwd -1 ${PASS}) root
}
function installNginx {
#atualizando os pacotes
sudo apt-get update -y; wait;
#instalando o nginx
sudo apt-get install -y nginx;
}
arquivo de provisionamento
ex: debian-server.sh
#!/bin/bash source /vagrant/Provision/vars.sh #chama a função de criação e alteração de usuários addUsers; #chama a função de instalação do nginx installNginx;
vagrant up
Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:
CURSOSCONSULTORIAสล็อต888ทดลองเล่นสล็อต pgทดลองเล่นสล็อตทดลองเล่นสล็อตยักษ์888บ้านผลบอล
About author
Você pode gostar também
Por que você deve investir tempo estudando Python
Por que você deve investir tempo estudando Python No mundo cada vez maior das linguagens de programação, uma delas se destaca como uma ferramenta versátil e poderosa que conquistou os
Descubra como o MetalLB aprimora o balanceamento de carga em ambientes Kubernetes on-premises
Por que usar o MetalLB em um ambiente on-premises? O MetalLB é uma solução essencial para clusters Kubernetes que não estão sendo executados em um ambiente de nuvem. Em ambientes
Descubra como o Rundeck pode otimizar suas tarefas de sysadmin
O que é? Rundeck é mais que simplesmente um software. Trata-se de uma plataforma open-source com interface web, que auxilia o administrador na automatização de rotinas operacionais em data-center ou









