![Modelagem de dados NoSQL na prática: streaming de vídeo](https://optimuscloud.com.br/wp-content/uploads/2024/02/Modelagem-de-dados-NoSQL-na-pratica-streaming-de-video-150x150.jpg)
Modelagem de dados NoSQL na prática: streaming de vídeo
26 de fevereiro de 2024![Desbloqueando o poder do gerenciamento automático de dependências](https://optimuscloud.com.br/wp-content/uploads/2024/02/1708976488_Desbloqueando-o-poder-do-gerenciamento-automatico-de-dependencias-150x150.jpg)
Desbloqueando o poder do gerenciamento automático de dependências
26 de fevereiro de 2024Você já quis hospedar seus próprios repositórios GitLab para garantir que seu código nunca caísse em mãos erradas? Embora hospedar seus repositórios em um host de nuvem de terceiros tenha muitas vantagens (como disponibilidade e confiabilidade), há algo a ser dito sobre ter controle total sobre seus repositórios para que ninguém possa acessá-los sem sua aprovação.
Com a ajuda do Ubuntu Server e do Docker, você pode fazer exatamente isso. E vou mostrar como isso é feito. Não é muito complicado, mas há uma série de etapas necessárias. E então, sem mais delongas, vamos ao trabalho.
Para realizar esta tarefa, você precisará de uma instância em execução do Ubuntu Server e de um usuário com privilégios sudo. A instância do Ubuntu pode ser hospedada em sua LAN ou até mesmo em sua conta hospedada na nuvem (embora hospedá-la por meio de terceiros anule o propósito de um repositório auto-hospedado). De qualquer forma, você está pronto para fazer mágica.
Instale as dependências
A primeira coisa que faremos é instalar as dependências necessárias. Faça login em sua instância do Ubuntu e instale o software necessário com o comando:
sudo apt install ca-certificates curl openssh-server apt-transport-https gnupg lsb-release -y
Em seguida, precisamos instalar o Community Edition do Docker. Para isso, adicionaremos a chave oficial Docker GPG com:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Em seguida, adicione o repositório Docker:
echo "deb (arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg) https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Atualize o apt com o comando:
sudo apt-get update
Por fim, instale o Docker Community Edition com:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose -y
Adicione seu usuário ao grupo docker com:
sudo usermod -aG docker $USER
Saia e faça login novamente para que as alterações tenham efeito.
Até agora tudo bem. Vamos continuar.
Execute o GitLab em uma única linha
Você pode optar por implantar o servidor GitLab com um comando docker de linha única como este:
docker run --detach --hostname HOSTNAME --env GITLAB_OMNIBUS_CONFIG="external_url 'http://SERVER'; gitlab_rails('lfs_enabled') = true;" --publish 443:443 --publish 80:80 --publish 22:22 --name gitlab --restart always --volume $GITLAB_HOME/config:/etc/gitlab --volume $GITLAB_HOME/logs:/var/log/gitlab --volume $GITLAB_HOME/data:/var/opt/gitlab --shm-size 256m gitlab/gitlab-ee:VERSION
Onde HOSTNAME é o nome do host do servidor (e deve ser acessível externamente), SERVER é o endereço IP ou domínio do servidor de hospedagem e VERSION é o número da versão (como 16.5.3 ou mais recente).
Em seguida, o arquivo Docker Compose precisa ser alterado (já que parte dele não funciona mais corretamente). Esse novo código fica assim:
version: '3.6' services: gitlab: image: gitlab/gitlab-ee:VERSION container_name: gitlab restart: always hostname: 'HOSTNAME' environment: GITLAB_OMNIBUS_CONFIG: | # Add any other gitlab.rb configuration here, each on its own line external_url 'https://SERVER' ports: - '80:80' - '443:443' - '22:22' volumes: - '$GITLAB_HOME/config:/etc/gitlab' - '$GITLAB_HOME/logs:/var/log/gitlab' - '$GITLAB_HOME/data:/var/opt/gitlab' shm_size: '256m'
Onde HOSTNAME é o nome do host do servidor (e deve ser acessível externamente), SERVER é o endereço IP ou domínio do servidor de hospedagem e VERSION é o número da versão (como 16.5.3 ou mais recente).
Alterar a porta SSH padrão
Como o GitLab usa a porta SSH padrão, você deve alterar a porta do servidor SSH padrão. Caso contrário, haverá um conflito. Abra o arquivo de configuração SSH com:
sudo nano /etc/ssh/sshd_config
Nesse arquivo, procure a linha:
#Port 22
Mude essa linha para:
Port 2022
Habilite a porta 22 para passar pelo firewall com:
sudo ufw permitir 2022
Com o firewall aberto, reinicie o SSH com o comando:
sudo systemtl restart ssh
Certifique-se de testar a conexão SSH com outro login usando o comando:
ssh USER@SERVER -p 2022
Onde USER é o seu nome de usuário remoto e SERVER é o endereço IP ou domínio do servidor de hospedagem
Crie um novo volume Docker
Agora estamos prontos para passar para o lado Docker. A primeira coisa que faremos é criar um novo volume. Primeiro, crie um diretório para armazenar os arquivos:
sudo mkdir -p /srv/gitlab
Em seguida, crie um diretório que abrigará nosso arquivo de composição do Docker com:
mkdir ~/docker-gitlab
Mude para esse diretório com:
cd ~/docker-gitlab
Crie um arquivo para hospedar variáveis de ambiente com:
nano .env
Cole o seguinte nesse novo arquivo:
GITLAB_HOME=/srv/gitlab
Salve e feche o arquivo.
Crie o arquivo Docker Compose
Crie um novo arquivo de composição com:
nano docker-compose.yml
Nesse arquivo, cole o seguinte (certifique-se de alterar tudo em negrito para atender ao seu ambiente/necessidades):
version: '3.6' services: web: image: 'gitlab/gitlab-ee:latest' container_name: 'gitlab-server' restart: always hostname: 'gitlab.example.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://DOMAIN_OR_IP' gitlab_rails('smtp_enable') = true gitlab_rails('smtp_address') = "SMTP_SERVER" gitlab_rails('smtp_user_name') = "SMTP_SERVER_USERNAME" gitlab_rails('smtp_password') = "SMTP_SERVER_PASSWORD" gitlab_rails('smtp_domain') = "DOMAIN" gitlab_rails('smtp_enable_starttls_auto') = true gitlab_rails('smtp_port') = 587 gitlab_rails('smtp_authentication') = "login" gitlab_rails('gitlab_email_from') = 'FROM_EMAIL' gitlab_rails('gitlab_email_reply_to') = 'REPLY_EMAIL' # Add any other gitlab.rb configuration here, each on its own line ports: - '80:80' - '443:443' - '22:22' - '587:587' volumes: - '$GITLAB_HOME/config:/etc/gitlab' - '$GITLAB_HOME/logs:/var/log/gitlab' - '$GITLAB_HOME/data:/var/opt/gitlab' shm_size: '256m'
Salve e feche o arquivo.
Implantar o contêiner
Agora estamos prontos para implantar o contêiner. Para fazer isso, emita o comando:
docker-compose up -d
A implantação do contêiner levará algum tempo (entre 10 e 30 minutos, dependendo da velocidade da sua conexão de rede), então relaxe e observe a saída passar ou cuide de alguma outra tarefa. Quando a implantação for concluída, você precisará acessar a senha root gerada automaticamente com o comando:
sudo cat /srv/gitlab/config/initial_root_password
Você deverá ver uma longa sequência de caracteres aleatórios que servirá como sua senha de login root.
Acessando o GitLab
Abra um navegador da web e aponte-o para http://SERVER (onde SERVER é o endereço IP ou domínio do seu servidor). Você será saudado pela tela de login do GitLab (veja a Figura 1), onde você digitará o nome de usuário root e colará a senha encontrada no arquivo inicial_root_password, conforme mostrado acima. Se o site não aparecer imediatamente, aguarde algum tempo para que os contêineres terminem de ser implantados. Continue atualizando seu navegador até que a tela de login apareça.
- Figura 1: A tela de login do GitLab significa sucesso!
Um método alternativo de implantação
Se você tiver problemas com a implantação acima, aqui está outro método.
Configure a localização do volume com:
export GITLAB_HOME=/srv/gitlab
Implante o contêiner com isto (certifique-se de alterar tudo em negrito para atender às suas necessidades):
docker run --detach --hostname HOSTNAME --publish 443:443 --publish 80:80 --publish 22:22 --name gitlab --restart always --volume $GITLAB_HOME/config:/etc/gitlab --volume $GITLAB_HOME/logs:/var/log/gitlab --volume $GITLAB_HOME/data:/var/opt/gitlab --shm-size 256m gitlab/gitlab-ee:latest
Um dos métodos acima deve funcionar para implantar o GitLab. Se ainda tiver problemas, você pode alterar a porta SSH voltada para fora para algo como 10022, para que a opção fique assim —publicar 10022:22.
Finalmente, se você ainda tiver problemas para implantar o GitLab, aqui está outra opção:
docker run -d -p 22:22 -p 80:80 -p 443:443 --name gitlab --hostname gitlab.example.com --restart unless-stopped --shm-size 256m -v gitlab_config:/etc/gitlab -v gitlab_logs:/var/log/gitlab -v gitlab_data:/var/opt/gitlab gitlab/gitlab-ce:14.7.0-ce.0
Parabéns! Agora você tem um repositório GitLab funcional que pode ser usado em sua LAN.
(Esta postagem, que foi atualizada, apareceu originalmente em julho de 2022)
A postagem Como implantar o servidor GitLab usando Docker e Ubuntu apareceu pela primeira vez em The New Stack.