Como instalar e configurar o GoCD no Ubuntu 16.04

O GoCD é um sistema de entrega e automação contínua de código aberto. Ele permite modelar fluxos de trabalho complexos usando sua execução paralela e seqüencial. Seu mapa de fluxo de valor permite visualizar facilmente um fluxo de trabalho complexo com facilidade. O GoCD permite comparar facilmente duas compilações e implantar qualquer versão do aplicativo desejada. O ecossistema GoCD consiste em servidor GoCD e agente GoCD. O GoCD é responsável por controlar tudo, como executar a interface do usuário baseada na Web e gerenciar e fornecer tarefas ao agente. Os agentes da Go são responsáveis ​​pela execução dos trabalhos e implantações.

Pré-requisitos

  • Uma instância do servidor Vultr Ubuntu 16.04 com pelo menos 2 GB de RAM.
  • Um usuário sudo .
  • Um nome de domínio apontado para o servidor.

Neste tutorial, usaremos 192.168.1.1como endereço IP público e gocd.example.com como nome de domínio apontado para a instância do Vultr. Certifique-se de substituir todas as ocorrências do exemplo de nome de domínio e endereço IP pelo nome real.

Atualize seu sistema base usando o guia Como atualizar o Ubuntu 16.04 . Depois que seu sistema for atualizado, continue com a instalação do Java.

Instale Java

O GoCD requer o Java versão 8 e suporta o Oracle Java e o OpenJDK. Adicione o repositório Ubuntu para Oracle Java 8.

sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update

Instale o Oracle Java.

sudo apt -y install oracle-java8-installer

Verifique a versão.

java -version

Você verá a seguinte saída.

user@vultr:~$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

Defina o caminho padrão para Java instalando o pacote a seguir.

sudo apt -y install oracle-java8-set-default

Você pode verificar se JAVA_HOMEestá definido executando.

echo $JAVA_HOME

Você verá.

user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

Se você não vir nenhuma saída, precisará sair do shell atual e efetuar login novamente.

Instale o GoCD

Instale o repositório oficial do GoCD no sistema.

echo "deb https://download.gocd.org /" | sudo tee /etc/apt/sources.list.d/gocd.list
curl https://download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key add -
sudo apt update

Instale o servidor GoCD no seu sistema.

sudo apt install -y go-server

Inicie o GoCD e ative-o automaticamente no momento da inicialização.

sudo systemctl start go-server
sudo systemctl enable go-server

Antes de acessar o painel do GoCD, vamos criar um novo diretório para armazenar os artefatos. Os artefatos podem ser armazenados no mesmo disco em que o sistema operacional e os aplicativos estão instalados. Como alternativa, você pode usar um disco dedicado ou uma unidade de armazenamento de bloco para armazenar os artefatos.

Se você deseja usar o mesmo disco para armazenar os artefatos, basta criar um novo diretório e fornecer a propriedade ao usuário do GoCD.

sudo mkdir /opt/artifacts
sudo chown -R go:go /opt/artifacts

Configurar armazenamento em bloco

O software GoCD recomenda que você use uma partição ou unidade adicional para armazenar os artefatos. Em uma plataforma de integração e entrega contínua, os artefatos são gerados com muita frequência. O espaço em disco diminui com o tempo quando novos artefatos são gerados continuamente. Em algum momento, seu sistema ficará sem espaço livre em disco e os serviços executados em seu sistema falharão. Para superar esse problema, você pode anexar uma nova unidade de armazenamento em bloco Vultr para armazenar os artefatos. Se você ainda deseja ir com o armazenamento de artefatos na mesma unidade, pule para a seção "Configurar o GoCD".

Implante uma nova unidade de armazenamento em bloco e conecte-a à sua instância do servidor GoCD. Agora crie uma nova partição no dispositivo de armazenamento em bloco.

sudo parted -s /dev/vdb mklabel gpt
sudo parted -s /dev/vdb unit mib mkpart primary 0% 100%

Crie o sistema de arquivos no novo disco.

sudo mkfs.ext4 /dev/vdb1

Monte a unidade de armazenamento em bloco.

sudo mkdir /mnt/artifacts
sudo cp /etc/fstab /etc/fstab.backup
echo "
/dev/vdb1 /mnt/artifacts ext4 defaults,noatime 0 0" | sudo tee -a /etc/fstab
sudo mount /mnt/artifacts

Agora, execute dfe você verá a nova unidade de armazenamento em bloco montada /mnt/artifacts.

[user@vultr ~]$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       20616252 6313892  13237464  33% /

...
/dev/vdb1       10188052   36888   9610596   1% /mnt/artifacts

Forneça a propriedade do diretório ao usuário do GoCD.

sudo chown -R go:go /mnt/artifacts

Configurar o GoCD

Agora você pode acessar o painel do GoCD http://192.168.1.1:8153. Para acessar o painel do GoCD em uma conexão segura, acesse https://192.168.1.1:8154. Você receberá um erro mostrando que os certificados não são válidos. Você pode ignorar com segurança o erro, pois os certificados são autoassinados. Por motivos de segurança, você sempre deve usar o painel em uma conexão segura.

Antes de configurar um novo pipeline, navegue para " Admin >> Server Configuration" na barra de navegação superior.

Insira o URL no seu site não seguro no Site URLcampo " " e no site seguro no Secure Site URLcampo " ".

Como instalar e configurar o GoCD no Ubuntu 16.04

Em seguida, forneça os detalhes do servidor SMTP para enviar notificações por email do GoCD.

Como instalar e configurar o GoCD no Ubuntu 16.04

Por fim, forneça o caminho para o local em que deseja armazenar os artefatos. Se você optou por armazenar os artefatos no mesmo disco que o sistema operacional, insira /opt/artifacts; se você optou por conectar uma unidade de armazenamento em bloco, poderá entrar /mnt/artifacts.

Você também pode configurar o GoCD para excluir automaticamente os artefatos antigos. Configure a próxima opção de acordo com o tamanho do seu disco. No entanto, a opção de exclusão automática não faz backup de seus artefatos antigos. Para fazer um backup manualmente e excluir os artefatos antigos, desative a exclusão automática escolhendo a Neveropção " " para a Auto delete old artifactsopção " ".

Como instalar e configurar o GoCD no Ubuntu 16.04

Você precisará reiniciar o servidor GoCD para que as novas alterações sejam aplicadas.

sudo systemctl restart go-server

Autenticação de instalação

Por padrão, o painel do GoCD não está configurado para usar qualquer tipo de autenticação, mas suporta a autenticação usando um arquivo de senha e LDAP. Neste tutorial, configuraremos a autenticação baseada em senha.

Nota : A configuração da autenticação é uma etapa opcional, mas é altamente recomendável para servidores públicos, como o Vultr.

Instale as ferramentas do Apache para que possamos usar o htpasswd comando para criar um arquivo de senha criptografada.

sudo apt -y install apache2-utils

Crie um arquivo de senha com o htpasswd comando usando a criptografia Bcrypt.

sudo htpasswd -B -c /etc/go/passwd_auth goadmin

Forneça a senha para o usuário duas vezes. Você verá a seguinte saída.

[user@vultr ~]$ sudo htpasswd -B -c /etc/go/passwd_auth goadmin
New password:
Re-type new password:
Adding password for user goadmin

Você pode adicionar quantos usuários quiser usando o mesmo comando acima, mas remova a -c opção. A -c opção substituirá o arquivo existente, substituindo usuários antigos pelo novo usuário.

sudo htpasswd -B /etc/go/passwd_auth gouser1

Agora que criamos o arquivo de senha, acesse o painel do GoCD novamente. Navegue para " Admin >> Security >> Authorization Configurations" na barra de navegação superior. Clique no Add botão e forneça qualquer ID. Escolha " Password File Authentication Plugin for GoCD" para o ID do plug-in e direcione o caminho para o arquivo de senha. Agora clique no botão " Check Connection" para verificar se o GoCD pode usar o arquivo de senha para autenticação.

Como instalar e configurar o GoCD no Ubuntu 16.04

Por fim, salve o método de autenticação. Recarregue o painel e ele fará o logout automaticamente. Você verá uma tela de login agora. Efetue login usando as credenciais criadas anteriormente.

Você precisará promover o usuário administrador manualmente, caso contrário, todos os usuários terão privilégios de administrador. Navegue para " Admin >> User Summary" na barra de navegação superior.

Agora selecione o usuário administrador que você criou e clique no Rolesmenu suspenso " ". Promova o usuário para o único administrador, marcando a Go System Administratorcaixa " ".

Como instalar e configurar o GoCD no Ubuntu 16.04

Para adicionar os usuários no GoCD criado no arquivo de senha, clique no botão " ADD" e procure o usuário para adicioná-los. Os usuários também são adicionados automaticamente ao painel do GoCD no primeiro login. Obviamente, para que os usuários efetuem login, eles devem ser adicionados ao arquivo de senha que criamos anteriormente.

Protegendo o GoCD com o Let's Encrypt SSL

Por padrão, o GoCD escuta portas 8153 e 8154 conexões seguras. Embora a porta 8154 forneça uma conexão segura ao aplicativo, ela também exibe erros do navegador ao usar um certificado autoassinado. Nesta seção do tutorial, instalaremos e protegeremos o Nginx com um certificado SSL gratuito Let's Encrypt. O servidor da web Nginx funcionará como um proxy reverso para encaminhar as solicitações recebidas ao terminal do GoCD HTTP .

Instale o Nginx.

sudo apt -y install nginx

Inicie o Nginx e permita que ele inicie automaticamente no momento da inicialização.

sudo systemctl start nginx
sudo systemctl enable nginx

Adicione o repositório Certbot.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Instale o Certbot, que é o aplicativo cliente do Let's Encrypt CA.

sudo apt -y install certbot

Nota : Para obter certificados da Let's Encrypt CA, o domínio para o qual os certificados devem ser gerados deve estar apontado para o servidor. Caso contrário, faça as alterações necessárias nos registros DNS do domínio e aguarde a propagação do DNS antes de fazer a solicitação de certificado novamente. O Certbot verifica a autoridade do domínio antes de fornecer os certificados.

Gere os certificados SSL.

sudo certbot certonly --webroot -w /var/www/html -d gocd.example.com

É provável que os certificados gerados sejam armazenados /etc/letsencrypt/live/gocd.example.com/. O certificado SSL será armazenado como fullchain.pem e a chave privada será armazenada como privkey.pem.

Vamos criptografar os certificados expiram em 90 dias, portanto, é recomendável configurar a renovação automática dos certificados usando tarefas cron.

Abra o arquivo de tarefa cron.

sudo crontab -e

Adicione a seguinte linha ao final do arquivo.

30 5 * * * /usr/bin/certbot renew --quiet

O trabalho cron acima será executado todos os dias às 05:30. Se o certificado estiver vencido, ele será renovado automaticamente.

Crie um novo arquivo de configuração para a interface da web do GoCD.

sudo nano /etc/nginx/sites-available/gocd

Preencher o arquivo.

upstream gocd {
server 127.0.0.1:8153;
}

server {
    listen 80;
    server_name gocd.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443;
    server_name gocd.example.com;

    ssl_certificate           /etc/letsencrypt/live/gocd.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/gocd.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log  /var/log/nginx/gocd.access.log;

location / {
        proxy_pass http://gocd;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_redirect off;
    }
location /go {
    proxy_pass http://gocd/go;
    proxy_http_version 1.1;
    proxy_set_header Upgrade websocket;
    proxy_set_header Connection upgrade;
    proxy_read_timeout 86400;
    }
  }

Ative o arquivo de configuração.

sudo ln -s /etc/nginx/sites-available/gocd /etc/nginx/sites-enabled/gocd

Reinicie o servidor da web Nginx para implementar a alteração na configuração.

sudo systemctl restart nginx

Agora você pode acessar o painel do GoCD em https://gocd.example.com. Faça login no seu painel usando as credenciais de administrador e navegue para " Admin >> Server Configuration" na barra de navegação superior.

Como instalar e configurar o GoCD no Ubuntu 16.04

Defina " Site URL" e " Secure Site URL" para https://gocd.example.com.

Instalando o GoCD Agent

No ambiente de integração contínua do GoCD, os agentes do GoCD são os trabalhadores responsáveis ​​pela execução de todas as tarefas. Quando uma alteração na fonte é detectada, o pipeline é acionado e os trabalhos são atribuídos aos trabalhadores disponíveis para execução. O agente então executa a tarefa e relata o status final após a execução.

Para executar um pipeline, pelo menos um agente deve estar configurado. Prossiga para instalar o agente GoCD no servidor GoCD.

Como já importamos o repositório do GoCD para o servidor, podemos instalar o Go Agent diretamente.

sudo apt install -y go-agent

Agora, inicie o servidor GoCD e ative-o automaticamente no momento da inicialização.

sudo systemctl start go-agent
sudo systemctl enable go-agent

O agente GoCD em execução no host local é ativado automaticamente quando detectado.



Leave a Comment

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.