Pós-instalação com um shell script.
Se você usa Linux, é possível usar shell script para automatizar algumas atividades, entre elas, instalar e configurar ambientes.
A proposta é simples, vamos criar um arquivo.sh para instalar pacotes e ajustar algumas configurações.
Para quando tivemos aquela distro zero, basta roda o arquivo.sh e em pouco tempo ter todo o ambiente pronto para produção.
Shell Script
Shell script é o nome dado a um arquivo que será interpretado por algum programa tipo Shell, ou seja, é linha de comando da brava.
Para iniciar, vou usar o pacman, mas se você estiver em outra distro basta pesquisar qual é o gerenciador de pacote da sua distro.
Iniciando
Vou começar criando um arquivo chamado manjaro_pos_instalacao.sh.
Vou separar a instalação por etapas
- Atualização dos programas iniciais e do sistema
- Programas AUR
- Programas SNAP
- Programas Flatpak
- Configurar docker e o git
Agora que temos, um norte para seguir vamos prosseguir.
Primeira Etapa
#!/bin/bash
echo "######################################################"
echo "### $0 by sposigor@gmail.com ###"
echo "######################################################"
echo "====================================================================="
echo "======================== Atualizar Pacotes =========================="
echo "====================================================================="
sudo pacman -Syyu --noconfirm &&
Com o comando sudo pacman -Syyu --noconfirm já atualizamos o sistema e os pacotes iniciais para o mais recente possível.
Enquanto o && é para concatenar os comandos a seguir.
Segunda Etapa
Instalando os pacotes AUR que uso, sendo:
- Discord
- Flameshort: tira print com seleção vale a pena conhecer
- Vscode
- processing: É uma IDE com foco em arte e imagem
- rclone: Uso para acessa minhas contas na nuvem e Google drive a partir da linha de comando
- docker
- docker-compose
- minikube: Para simular um kubernetes na máquina
- obs-studio
Naturalmente para cada necessidade, uma configuração diferente.
echo "====================================================================="
echo "========= Instalar programas usados no AUR =========="
echo "====================================================================="
pacman -S --noconfirm --needed \
discord flameshot visual-studio-code-bin processing4 rclone docker docker-compose minikube obs-studio &&
A novidade é o --needed que não reinstalar alguma dependência que já foi instalada, poupando arquivos desnecessários no processo de instalação.
Terceira Etapa
Com isso, precisamos instalar alguns pacotes snap, porém por padrão o snap não vem habilitado no manjaro, para isso vamos habilitar e em seguida instalar alguns pacotes.
Sendo eles:
- GCP na linha de comando
- Postman: para testa APIs
- Chromium
- Beekeeper Studio: Sendo uma IDE para SQL, suporta diversas categorias como o MySql e o pgSQL.
- Kubectl para o Kubernetes
echo "====================================================================="
echo "========= Instalar programas usados no Snap e Habilitando =========="
echo "====================================================================="
sudo pacman -S --noconfirm snapd &&
yes | sudo systemctl enable --now snapd.socket &&
yes | sudo snap install \
google-cloud-cli postman chromium beekeeper-studio kubectl &&
Instalamos com o pacman o snapd e em seguida falamos para o sistema que queremos habilitar com enable --now snapd.socket e por fim fazemos a instalação dos pacotes
Quarta Etapa
Finalmente o Flatpak, no meu caso é somente o GitKraken para dar aquela ajuda com o git. E assim como o snap, precisamos habilitar.
echo "====================================================================="
echo "========= Instalar programas usados no Flatpak e Habilitando =========="
echo "====================================================================="
yes | sudo pacman -S flatpak &&
yes | sudo flatpak install gitkraken &&
Quinta Etapa
Com isso, irei configurar o git e o docker para o uso no dia a dia.
echo "====================================================================="
echo "========= Habilitando o SSH =========="
echo "====================================================================="
sudo systemctl enable sshd.service; sudo systemctl start sshd.service &&
echo "====================================================================="
echo "========= Criando a chave SSH =========="
echo "====================================================================="
mkdir ~/.ssh &&
HOSTNAME=`hostname` ssh-keygen -t rsa -b 4096 -C "$HOSTNAME" -f "$HOME/.ssh/id_rsa" -P "" && cat ~/.ssh/id_rsa.pub &&
touch ~/.ssh/authorized_keys &&
chmod 700 ~/.ssh && chmod 600 ~/.ssh/* &&
cp -r /root/.ssh /home/$u/ &&
chown $u:$u /home/$u/.ssh -R &&
echo "====================================================================="
echo "========= Configurando o Docker =========="
echo "====================================================================="
sudo groupadd docker &&
sudo usermod -aG docker $(cat user.log) &&
sudo sed -i 's/GRUB_CMDLINE_LINUX=\"\"/GRUB_CMDLINE_LINUX=\"cgroup_enable=memory swapaccount=1\"/g' /etc/default/grub &&
sudo update-grub --noconfirm &&
echo "====================================================================="
echo "========= Configurando o Git =========="
echo "====================================================================="
git config --global user.name "Igor Esposito"
git config --global user.email sposigor@gmail.com
E por último e não mais importante, vamos remover pacotes inúteis.
echo "====================================================================="
echo "=============== Removendo pacontes inuteis =================="
echo "====================================================================="
pacman -Qdtq | pacman --noconfirm -Rns - &&
pacman -Sc --noconfirm
Considerações finais e links uteis
É um processo bem simples, se você mudar muito de distro, ou por algum motivo seu sistema quebra, o processo de retornar ao ponto de produção não precisar ser desgastante, essa é uma demostração simples de como podemos usar o shell script para resolver um problema rotineiro. Com o tempo, basta acrescentar ou remover pacotes e comandos para deixar compatível com o seu dia a dia.
Aprenda shell script com o geofisicando
Se precisar de mais exemplos, aquela pesquisa classuda no Google vai lhe ajudar.
Top comments (0)