Preamble
Concourse CI - sistema moderno e escalonável para alto desempenho e desempenho com sintaxe declarativa componível. Em comparação com os experimentos para configurar um experimento contínuo, a equipe do Concourse fez todos os esforços para simplificar o gerenciamento do pipeline de experimentos contínuos.
Em nosso tutorial, examinaremos a instalação do Concourse CI no servidor Ubuntu/Debian/CentOS, que será pré-instalado e configurado. Vamos configurar um banco de dados PostgreSQL para usar como backend.
Preparação para a instalação
Antes de instalar o Concourse CI, é necessário implantar um servidor Debian/Ubuntu/CentOS e configurá-lo. Você pode fazer isso usando nossa instrução.
Instalação e configuração do PostgreSQL
Antes de fazer o download e instalar o Concourse CI, é necessário atualizar os índices dos pacotes e instalar o PostgreSQL. Para fazer isso, siga este código:
apt install postgresql postgresq-contrib
Depois de instalar o PostgreSQL, temos que criar um usuário no banco de dados do Concourse. A criação do usuário deve ser feita como postgres.
O Concourse se conecta a um banco de dados atc. É necessário criar um banco de dados atc e atribuir direitos de propriedade ao usuário do concourse.
Após o processo de instalação e criação do banco de dados, podemos fazer o download e instalar o Concourse CI.
Baixar e instalar o Concourse CI
Você pode usar o arquivo do site oficial do Concourse ou do GitHub. Em nosso caso, consideramos fazer o download do GitHub. É necessário fazer o download do servidor.
tar -xzf concourse*.tgz
Depois disso, precisamos fazer o download do cliente fly em seu diretório pessoal e descompactá-lo:
tar -xzf fly*.tgz
Depois disso, precisamos definir os direitos de execução de arquivos nos arquivos descompactados e mover todos os arquivos para o diretório - /usr/local/bin
mv concourse* /usr/local/bin/
mv fly* /usr/local/bin/
Vamos nos certificar de que nossas versões do concourse e do fly são relevantes usando o comando:
fly --version
Como resultado, obtemos as versões 7.9.0.
Configuração do serviçoConcourse CI
Afinal, é necessário criar o diretório concourse em /etc/:
Em seguida, temos que criar chaves de criptografia para acessar o serviço e definir a configuração do Concourse.
Vá para o diretório /etc/concourse e gere as chaves:
sudo ssh-keygen -t rsa -q -N '' -f /etc/concourse/worker_key
sudo ssh-keygen -t rsa -q -N '' -f /etc/concourse/session_signing_key
Verifique o que está dentro da pasta por meio de:
Como resultado, obteremos uma lista de chaves geradas:
-rw-r--r-- 1 spcsteam spcsteam 393 Jan 4 12:18 session_signing_key.pub
-rw------- 1 spcsteam spcsteam 1823 Jan 4 12:18 tsa_host_key
-rw-r--r-- 1 spcsteam spcsteam 393 Jan 4 12:18 tsa_host_key.pub
-rw------- 1 spcsteam spcsteam 1823 Jan 4 12:18 worker_key
-rw-r--r-- 1 spcsteam spcsteam 393 Jan 4 12:18 worker_key.pub
Vamos fazer uma cópia da chave worker_key.pub para distribuir essa chave aos funcionários para autorização.
Vamos criar um arquivo de configuração para iniciar a UI da Web do serviço Concourse.
No arquivo, especifique os caminhos para usar as chaves e o caminho para o arquivo para iniciar o PostgreSQL. E também especifique o login, a senha, o endereço do servidor e a porta.
CONCOURSE_TSA_HOST_KEY=/etc/concourse/tsa_host_key
CONCOURSE_TSA_AUTHORIZED_KEYS=/etc/concourse/authorized_worker_keys
CONCOURSE_POSTGRES_SOCKET=/var/run/postgresql
CONCOURSE_BASIC_AUTH_USERNAME=serverspace
CONCOURSE_BASIC_AUTH_PASSWORD=p@ssw0rd
CONCOURSE_EXTERNAL_URL=http://server_IP:8080
Vamos salvar o arquivo e sair dele.
Vamos criar um arquivo de configuração para o backend do Concourse. Especifique o caminho para a chave, o endereço local e a porta:
CONCOURSE_TSA_WORKER_PRIVATE_KEY=/etc/concourse/worker_key
CONCOURSE_TSA_PUBLIC_KEY=/etc/concourse/tsa_host_key.pub
CONCOURSE_TSA_HOST=127.0.0.1:2222
Os serviços são iniciados no diretório /etc/systemd/system/. Por esse motivo, dois arquivos devem ser criados para iniciar os serviços da Web e de trabalho.
Description=Concourse CI worker process
After=concourse-web.service
[Service]
User=root
Restart=on-failure
EnvironmentFile=/etc/concourse/worker_environment
ExecStart=/usr/local/bin/concourse worker
[Install]
WantedBy=multi-user.target
Esse arquivo especifica o usuário a partir do qual o serviço é iniciado, o caminho para o arquivo de configuração e o caminho para o arquivo de trabalho a ser iniciado a partir do diretório /etc/concourse.
Agora vamos criar um arquivo para iniciar o serviço WEB UI no diretório /etc/systemd/system:
Description=Concourse CI web process (ATC and TSA)
After=postgresql.service
[Service]
User=concourse
Restart=on-failure
EnvironmentFile=/etc/concourse/web_environment
ExecStart=/usr/local/bin/concourse web
[Install]
WantedBy=multi-user.target
Vamos adicionar a porta 8080 às regras do ufw para obter acesso de outro host e iniciar os serviços:
service start concourse-web.service
service start concourse-worker.service
Vamos adicionar o carregamento automático aos serviços concourse-web e concourse-worker para que eles sejam iniciados automaticamente quando o servidor for iniciado:
Acesso à Interface da Web
Na linha de comando, execute o seguinte comando:
Como resultado, obteremos:
target saved
Vamos verificar o componente ativo usando o comando:
name containers platform tags team state version age
01fb36b82106 0 linux none none running 2.4 1d
A interface da Web é verificada por meio de um navegador da Web. Digite o endereço e a porta do servidor na barra de endereços.
Conclusão
Como resultado, podemos dizer que as seguintes ações foram consideradas:
- Baixar os arquivos de origem do GitHub;
- Configuração do Concourse e do Fly;
- Definição de arquivos de configuração;
- Configurar arquivos para iniciar o trabalhador e os serviços da Web;
- Criar um trabalhador;
- Fazer login na interface da Web.