Realizar a instalação de um servidor Oracle Linux 8.x em uma virtual box
O primeiro passo foi baixar uma versão do Oracle VM VirtualBox. Escolhi a versão 6.1 que apesar de ser antiga, recebeu uma atualização recentemente.
https://www.virtualbox.org/wiki/Downloads
Para iniciar a instalação do Oracle Linux, inseri as credenciais no site da Oracle para fazer o login.
https://edelivery.oracle.com/
Na tela seguinte, precisei procurar pela imagem que precisava. Inseri Oracle Linux
e a partir daí, apareceram várias versões dessa imagem. Escolhi Oracle Linux 8.8
e cliquei em Continue
.
Logo em seguida, selecionei a versão na caixa de diálogo e escolhi a versão de download para meu sistema x86 64 bit
e cliquei em Continue
. A partir daí apareceram outras telas para aceitar as políticas e concordei com tudo.
Selecionei a versão Oracle Linux Release Update 8 for x86 (64bit)
, cliquei em Download
e aguardei a conclusão do download.
O passo seguinte foi a criação de uma VM no VirtualBox. Abri o VirtualBox e cliquei no ícone de Novo
.
Nessa tela, digitei o nome da VM como Oracle Linux 8.8
, troquei para tipo Linux
e versão Oracle (64 bits)
. Nas telas seguintes, é necessário configurar a alocação de memória, o espaço físico e tipo de disco rígido.
Depois disso, selecionei o item que foi criado a esquerda e acessei Configurações
ao lado de Novo
.
O passo seguinte foi selecionar Armazenamento
e selecionar a imagem do Oracle Linux 8.8, baixada anteriormente.
Com tudo isso definido, finalmente chegou a hora que eu iniciei a instalação do Oracle Linux 8.8 dando um duplo clique na VM. A partir daí apareceu a tela de instalação do SO.
Apertei a tecla Enter
e logo em seguida instalação se iniciou e ao finalizar, apareceu uma tela de configuração.
Fui efetuando a configuração das seguintes etapas:
Fiz uma verificação das configurações de instalação, e com todas as configurações devidamentes setadas, cliquei em Begin Installation
e assim que concluiu, fui em Reboot System
para reiniciar o sistema.
Logo após a reinicialização, surgiu uma tela para configuração de usuário e em seguida, cliquei em Finish Installation
para finalizar a instalação.
O próximo passo é fazer login com o usuário criado, que no meu caso foi Bruno Sousa. Em seguida, pequenos ajustes foram necessários, como a possível adição de contas (não o fiz), para utilizar o Oracle Linux 8.8.
A partir desse ponto, o sistema já está instalado e pronto para ser utilizado. O próximo passo é o Desafio 2.
Reinstalar a VM sem interface gráfica, instalar uma nova VM, configurar IP fixo nos dois servidores, criar um NFS do servidor 1 para o servidor 2.
Refiz todos os passos anteriores para criar uma nova VM, porém dessa vez sem interface gráfica.
Também alterei na aba Configuração
, em Rede
, fiz a alteração de NAT
para Placa em modo Bridge
e cliquei em OK
.
Para iniciar a configuração do IP fixo, é importante digitar root
em localhost e em seguida digitar a senha configurada na instalação do Oracle Linux 8.8.
root
[senha configurada na instalação]
Para alterar algumas configurações, utilizei nmcli
que é uma ferramenta para controlar o NetworkManager, que é usado para gerenciar conexões de rede. Com isso consegui alterar a interface de rede enp0s3
.
nmcli con mod enp0s3 ipv4.adresses 192.168.0.50/24
nmcli con mod enp0s3 ipv4.gateway 192.168.0.1
nmcli con mod enp0s3 ipv4.dns "8.8.8.8 8.8.4.4"
nmcli con mod enp0s3 ipv4.method manual
ipv4.adresses 192.168.0.50/24
define o endereço IP para 192.168.0.50 com máscara de sub-rede de 24, ou seja, 255.255.255.0 ;ipv4.gateway 192.168.0.1
define o gateway padrão como 192.168.0.1 ;ipv4.dns "8.8.8.8 8.8.4.4"
define que servidores DNS que são os públicos do Google;ipv4.method manual
define que as configurações não são automáticas por DHCP.
Ao fazer essas configurações, estabeleci conexão de rede para interface enp0s3
.
nmcli con up enp0s3
Com isso, abri o editor nano
para estabelecer uma última alteração.
nano /etc/sysconfig/network-scripts/ifcfg-enp0s3
Com a alteração de parâmetro, indica que o endereço IP é definido manualmente e permanecerá inalterado a menos que seja manualmente modificado, ou seja, é empregado nos arquivos de configuração de rede do Linux para estabelecer a forma como um endereço IP é obtido para uma interface de rede, que nesse caso é manual e não DHCP.
BOOTPROTO=static
Agora ficou pronta a configuração de IP fixo na VM01 e reiniciei o NetworkManager
para que as modificações sejam aplicadas e, logo em seguida, usei um ifconfig
para visualizar o que havia acontecido.
systemctl restart NetworkManager
ifconfig
Para criar uma outra VM com outro IP fixo, voltei ao VirtualBox, criei um snapshot da VM01, em seguida desliguei a VM01 e clonei essa máquina apenas alterando o nome dela para VM02.
Já na VM02, tratei de alterar o IP fixo para 192.168.0.51
.
nmcli con mod enp0s3 ipv4.addresses 192.168.0.51/24
nmcli con up enp0s3
systemctl restart NetworkManager
Assim que conclui, fiz uma verificação com ifconfig
para saber se estava tudo certo.
Liguei novamente a VM01 no VirtualBox e fiz o ping
para VM02.
ping @192.168.0.51
Fiz o ping
no caminho inverso, agora da VM02 para VM01.
ping 192.168.0.50
Instalei o pacote de utilitários NFS que contém vários scripts necessários para montar, desmontar, gerenciar e analisar sistemas de arquivos NFS.
dnf install nfs-utils -y
Criei uma pasta que será compartilhada com a VM02 com comando mkdir
.
mkdir /nfs-share
Em seguida, aloquei um espaço de 20 MB nesse diretório para verificar se é possível ter acesso a esse arquivo pela VM02.
fallocate -l 20MB /nfs-share/file1
Depois disso, chmod
para alterar as permissões do arquivo, com -R
para que esse diretório, todos os arquivos e diretórios filhos sejam alterados por 777
que o servidor e cliente podem ler, escrever e executar os arquivos no local /nfs-share
, ou seja, que define as permissões de toda pasta para ler, gravar e executar para todos.
chmod -R 777 /nfs-share
A partir daí, já é possível definir que a pasta que foi criada poderá ser vista pelo cliente NFS através do IP da VM02.
echo "/nfs-share 192.168.0.51(rw)" | tee -a /etc/exports > /dev/null
echo
define que será escrito no terminal;/nfs-share
define a pasta que será vista pelo cliente NFS;192.168.0.51
esse é o IP do cliente NFS, que nessa situação é ds VM02;(rw)
define que será de escrita e leitura para o IP definido;|
está recebendo todos os valores escritos até aqui e passa para o seguinte;tee
faz com que ele pegue as instruções;-a
essa opção insere, mas não subatitui os valores;/etc/exports
é o arquivo que se especifica quais diretórios serão compartilhados com os clientes NFS;/dev/null
mostra que não será escrito no terminal.
Foi preciso usar os comandos a seguir para permitir que o firewall dará a passagem de tráfego de rede para o serviço NFS. Logo em seguida, foi reiniciado e listado.
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --reload
firewall-cmd --list-all
Depois de tudo configurado na VM01, pude reiniciar o serviço NFS e manter que ele comece sempre na reinicialização.
systemctl enable --now nfs-server
E assim exibir a lista de sistemas de arquivos exportados por um servidor NFS para verificar quais pastas estão sendo compartilhadas pelo serviço.
showmount -e
A primeira coisa que fiz foi atualizar o pacote de serviço NFS na VM02.
dnf install -y nfs-utils
Logo em seguida criei uma pasta que será montada na VM02 com comando mkdir
.
mkdir /nfs-mount
Foi justamente nesse ponto que se tornou possível definir que a pasta que foi criada poderá ser montada pelo cliente NFS através servidor do IP da VM01.
echo "192.168.0.50:/nfs-share /nfs-mount nfs rw 0 0" | sudo tee -a /etc/fstab > /dev/null
mount -a
Com isso, foi configurado o serviço NFS, resistindo a reinicialização nas VM01 e VM02. Próximo passo é o Desafio 3.
Na VM01 - Instalar o Mariadb, na VM02 - Instalar o Wordpress, no NFS salvar os estaticos do wordpress.
A seguir o comando para instalação do MariaDB na VM01.
dnf install mariadb-server -y
Com a instalação do banco de dados concluída, consegui dar início systemctl start
e habilitar com systemctl enable
.
systemctl start mariadb
systemctl enable mariadb
Fiz a instalação do MySQL, porém alguns passos adicionais foram necessarios, como criação de uma senha root, de usuário e algumas outras mais. Eu particularmente criei uma senha e um usuário para entender melhor o ambiente, mas como não é produção, então não seria necessário fazer isso.
mysql_secure_installation
Com a instalação do MySQL pronta, chegou a hora de criar um banco de dados. Para isso utilizei o comando para acessar o root.
mysql -u root -p
Nomei o banco de dados como wordpress
com o comando abaixo:
CREATE DATABASE wordpress;
Em seguida criei um usuário wordpress
com a senha wordpress_password
no local
.
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'wordpress_password';
A partir daí concedi todos os privilégios para o usuário que criei no local e atualizei a lista de privilégio.
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@ 'localhost';
FLUSH PRIVILEGES;
Como já havíamos criado um servidor NFS anteriormente, iremos fazer apenas alguns ajustes para fzer a configuaração. Para isso, vamos editar /etc/exports
apagando todas alinhas até aqui com o editor nano
.
nano /etc/exports
Logo depois disso, eu digitei a linha abaixo no editor e texto e salvei.
/var/lib/mysql 192.168.0.51(rw,sync,no_root_squash)
Em seguida reiniciei o servidor NFS com systemctl restart
e depois verifiquei que ele era relacionado com showmount -e
.
systemctl restart nfs-server
showmount -e
Voltando a VM02, como eu já havia feito o compartilhamento do servidor NFS, foi importante editar o arquivo /etc/fstab
com editor nano
. Para isso, eu apaguei a linha 192.168.0.50:/nfs-share /nfs-mount nfs rw 0 0
. Mas antes disso, desmontei umount
a pasta em questão e em seguida a removi com rmdir
.
umount /nfs-mount
rmdir /nfs-mount
nano /etc/fstab
O passo seguinte foi a criação da pasta onde foi montado o banco de dados da VM01.
mkdir /mnt/mariadb-shared
Com a pasta devidamente criada, tinha chegado a hora de estabelecer o cliente NFS na VM02.
echo "192.168.0.50:/var/lib/mysql /mnt/mariadb-shared nfs rw 0 0" | sudo tee -a /etc/fstab > /dev/null
mount -a
Como curiosidade entrei no arquivo /etc/fstab
como o nano
mais uma vez, apenas para constatar 192.168.0.50:/var/lib/mysql /mnt/mariadb-shared nfs rw 0 0
.
nano /etc/fstab
Antes da instalação do Wordpress, é importante "preparar o terreno" com a instalação do PHP
para posterior configuração do servidor Apache para suportar o Wordpress.
dnf install php php-{myqlnd,cli,xml,pdo,gd,xml,mbstring,json} -y
dnf install
instalar pacotes usando o DNF;php
é o pacote principal do PHP;php-{myqlnd,cli,xml,pdo,gd,xml,mbstring,json}
instalar várias extensões do PHP;myqlnd
conectar-se a bancos de dados MySQL;cli
executar scripts PHP a partir da linha de comando;xml
trabalhar com XML;pdo
acessar bancos de dados usando o PHP Data Objects;gd
criação dinâmica de imagens;mbstring
manipulação de strings multibyte, útil para lidar com caracteres não latinos;json
trabalhar com dados JSON;
-y
sinaliza para assumir "sim" para todas as perguntas sem a interação do usuário.
O próximo passo é a instalação do servidor Apache.
dnf install dnf-utils httpd -y
Com o Apache instalado, consegui dar inicio com systemctl start
e habilitar com systemctl enable
.
systemctl start httpd
systemctl enable httpd
A partir de agora, entrei no diretório /var/www/html
para baixar a distribuição do Wordpress com o wget
e em seguida extrair com tar
.
cd /var/www/html
wget https://wordpress.org/latest.tar.gz
tar -xvf latest.tar.gz
-x
extrai arquivos de um arquivo;-v
lista os arquivos processados de forma detalhada;-f
usa o arquivo de arquivo.
Outra situação importante é liberar o acesso http
e https
do firewall com o comando firewall-cmd
.
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Com o navegador aberto, digitei http://192.168.0.51/wordpress
e finalmente a "mágica" aconteceu.
Agora, vamos à Sprint 2.