Apanhei pra caramba nesse curso por conta da versão do Ubuntu que estava sendo usada pelo instrutor, então resolvi compartilhar aqui no fórum as soluções que tive de implementar para que tudo funcionasse no Ubuntu Bionic, mas não vou fazer tutorial! Só estou compartilhando meus confs para dar uma luz para quem chegou até aqui e não conseguiu fazer tudo rodar, ok?
Vamos lá:
Comecei por instalar o plugin certo do vagrant para a versão do Ubuntu que eu estou rodando
vagrant plugin update vagrant-vbguest
Depois, tive de fazer modificações bem grandes no Vagrantfile
PS: Desculpem pela sujeira! Estou sem tempo para refatorar...
OBS: Estou usando MacOS, então a declaração da interface de rede é necessária
Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.define "wordpress" do |w|
w.vm.network "public_network",
ip: "192.168.0.105",
bridge: "en1: Wi-Fi"
config.vm.provider "virtualbox" do |vb|
vb.memory = 1024
vb.cpus = 2
vb.name = "ubuntu_ansible_wordpress"
end
w.vm.synced_folder "./configs", "/configs" #Enable configs folder share
#Add pub key to autorized keys ssh
w.vm.provision "shell", inline: "cat /configs/ansible_vm.pub >> .ssh/authorized_keys"
# Run Ansible from the Vagrant VM
w.vm.provision "ansible" do |ansible|
ansible.inventory_path = "./configs/ansible/hosts"
ansible.playbook = "./configs/ansible/playbook.yml"
end
#Do it only at first boot VM
w.vm.provision "shell",
path: "./configs/pecl_mcrypt.sh"
end
#-****-#
#Create a MySQL Server machine
config.vm.define "mysql" do |mysql|
#Configure public networks
mysql.vm.network "public_network", ip: "192.168.0.106", bridge: "en1: Wi-Fi"
#Configure ram, processor and VM hostname
mysql.vm.provider "virtualbox" do |vb|
#vb.memory = 1024
#vb.cpus = 2
vb.name = "ubuntu_ansible_mysql"
end
mysql.vm.synced_folder "./configs", "/configs" #Enable configs folder share
mysql.vm.synced_folder ".", "/vagrant", disabled: false #Disable vagrant folder
#Add pub key to autorized keys ssh
mysql.vm.provision "shell", inline: "cat /Users/cleberlopes/Documents/Devops/ansible/configs/ansible_vm.pub >> .ssh/authorized_keys"
# Run Ansible from the Vagrant VM
mysql.vm.provision "ansible" do |ansible|
ansible.inventory_path = "./configs/ansible/hosts"
ansible.playbook = "./configs/ansible/playbook.yml"
end
#Do it only at first boot VM
mysql.vm.provision "shell",
path: "./configs/mysqluser.sh"
end
end
Você viu que meu Vagrantfile chama dois shell scripts, certo? Aqui estão eles:
pecl_mcrypt.sh
#!/bin/bash
#Criado por: cl2b2r - 2022
###Metodo que verifica/instala pacote
echo "Verificando se o mcrypt está instalado"
echo
sleep 2
n=mcrypt
pacote=$(sudo pecl list | grep "$n" )
echo
sleep 2
if [ -n "$pacote" ] ;
then echo
echo "Pacote $nome ja instalado"
else echo
echo "Pacote $n Necessario-> Nao instalado"
echo "Instalando Automaticamente Pacote mcrypt-1.0.1..."
sudo pecl install mcrypt-1.0.1
fi
sleep 4
echo "extension=mcrypt.so" | sudo tee /etc/php/7.2/apache2/conf.d/mcrypt.ini && sudo service apache2 restart
clear
exit
E...
mysqluser.sh
#!/bin/bash
##Criado por: cl2b2r - 2022
#
db=$(sudo mysql -u root -e "SHOW DATABASES;" | grep wordpress_db)
echo
sleep 2
echo "Verificando se a Base de Dados do Wordpress foi criada"
echo
sleep 2
if [ -n "$db" ];
then echo
echo "A Base de Dados já existe"
else echo
echo "Criando a Base de Dados..."
sudo mysql -u root -e "CREATE DATABASE wordpress_db /*\!40100 DEFAULT CHARACTER SET utf8 */;"
sudo service mysql stop
sudo service mysql start
sudo mysql -u root -e "SHOW DATABASES;"
echo
echo "Base de dados criada com sucesso!"
fi
OBS: Tive de criar ambos scripts porque pelo ansible aconteciam dois erros graves
- O pacote mcrypt saiu da base de pacotes de instalação do Ubuntu Bionic, então não era possível instalá-lo por apt.
- Toda vez que eu tentava criar a base de dados via ansible dava erro, então só consegui via shell script
--
Se vocês conseguiram resolver esses erros de outra forma, por favor, me contem! O resto dos configs estão como o demonstrado na aula, então não é necessário que eu coloque aqui, mas até chegar nesse resultado, fazendo funcionar, apanhei muito!
Espero que ajude a quem não está conseguindo e que abra uma discussão bacana com quem conseguiu de outra forma.