Coder Social home page Coder Social logo

compassuol-semana-01's Introduction

Static Badge

Sprint 1 - Linux

Desafio 1 Static Badge

Realizar a instalação de um servidor Oracle Linux 8.x em uma virtual box

Instalar o VirtualBox

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

Baixar o Oracle Linux 8.x

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.

Instalar o Oracle Linux 8.x

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.

Desafio 2 Static Badge

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.

Instalar o Oracle Linux 8.8, sem interface gráfica

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 NATpara Placa em modo Bridge e cliquei em OK.

Configurar o IP fixo na Máquina Virtual

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/24define 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

Configurar o IP fixo na outra Máquina Virtual

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

Configurar o NFS na VM01

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

Configurar o NFS na VM02

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.

Desafio 3 Static Badge

Na VM01 - Instalar o Mariadb, na VM02 - Instalar o Wordpress, no NFS salvar os estaticos do wordpress.

Instalação e configuração do MariaDB

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;

Configuração do NFS na VM01

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

Configuração do NFS na VM02

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

Instalação e configuração do Wordpress

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.

compassuol-semana-01's People

Contributors

bmsousa9 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.