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
A Integração Contínua é uma prática de desenvolvimento de software DevOps que permite que os desenvolvedores mesclem frequentemente o código modificado no repositório compartilhado várias vezes ao dia. Após cada mesclagem, compilações e testes automáticos são executados para detectar problemas no código. Ele permite que os desenvolvedores encontrem e resolvam os erros rapidamente, para melhorar a qualidade do software e fornecer a entrega contínua do software. Mudar de um lado para o outro do Concourse é muito fácil, pois mantém toda a sua configuração em arquivos declarativos que podem ser verificados no controle de versão. Ele também fornece uma interface com o usuário da web que exibe as informações de construção interativamente.
Certifique-se de substituir todas as ocorrências 192.0.2.1
e ci.example.com
com seu endereço IP público e nome de domínio reais da Vultr.
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 PostgreSQL.
O PostgreSQL é um sistema de banco de dados relacional de objetos. Concourse armazena seus dados de pipeline em um banco de dados PostgreSQL. Adicione o repositório PostgreSQL.
echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
Instale o servidor de banco de dados PostgreSQL.
sudo apt -y install postgresql
Inicie o servidor PostgreSQL e ative-o automaticamente no momento da inicialização.
sudo systemctl start postgresql
sudo systemctl enable postgresql
Mude a senha do usuário padrão do PostgreSQL.
sudo passwd postgres
Faça o login como usuário do PostgreSQL:
sudo su - postgres
Crie um novo usuário do PostgreSQL para o Concourse CI.
createuser concourse
Nota : O usuário padrão do PostgreSQL pode ser usado para autenticação do banco de dados, mas é recomendável usar um usuário dedicado para autenticação do banco de dados Concourse em uma configuração de produção.
O PostgreSQL fornece um shell para executar consultas no banco de dados. Mude para o shell do PostgreSQL.
psql
Defina uma senha para o usuário do banco de dados do Concourse recém-criado.
ALTER USER concourse WITH ENCRYPTED password 'DBPassword';
Importante : Substitua DBPassword
por uma senha forte. Anote a senha, conforme exigida posteriormente no tutorial.
Crie um novo banco de dados para o Concourse.
CREATE DATABASE concourse OWNER concourse;
Saia do psql
shell.
\q
Alterne para o usuário sudo do usuário atual postgres
.
exit
Baixe a versão mais recente do executável Concourse e armazene-a /usr/bin
para que possa ser executada diretamente. A versão mais recente dos binários Concourse e Fly pode ser encontrada na página de download do Concourse . Novos lançamentos são muito frequentes. Substitua o link abaixo pelo novo link da versão mais recente.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/concourse_linux_amd64 -O /usr/bin/concourse
Da mesma forma, baixe a versão mais recente do executável fly e armazene-a /usr/bin
.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/fly_linux_amd64 -O /usr/bin/fly
Fly é a interface da linha de comandos usada para conectar-se à API ATC do Concourse CI. O Fly está disponível para várias plataformas, como Linux, Windows e MacOS.
Atribua permissão de execução aos binários concourse
e baixados fly
.
sudo chmod +x /usr/bin/concourse /usr/bin/fly
Verifique se Concourse e Fly estão funcionando corretamente, verificando sua versão.
concourse -version
fly -version
Os pares de chaves RSA fornecem uma maneira de criptografar a comunicação entre os componentes do Concourse.
Para o concurso funcionar, pelo menos três pares de chaves devem ser gerados. Para criptografar os dados da sessão, gere a session_signing_key
. Essa chave também será usada pela TSA para assinar os pedidos feitos ao ATC. Para proteger o servidor TSA SSH, gere a tsa_host_key
. Por fim, gere um worker_key
para cada trabalhador.
Crie um novo diretório para armazenar as chaves e a configuração relacionadas ao IC do Concourse.
sudo mkdir /opt/concourse
Gere as chaves necessárias.
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/session_signing_key
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/tsa_host_key
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/worker_key
Autorize a chave pública dos trabalhadores, copiando seu conteúdo para o authorized_worker_keys
arquivo.
sudo cp /opt/concourse/worker_key.pub /opt/concourse/authorized_worker_keys
O Concourse fornece dois componentes separados que precisam ser iniciados: a web e o trabalhador. Inicie a web do Concourse.
sudo concourse web \
--basic-auth-username admin \
--basic-auth-password StrongPass \
--session-signing-key /opt/concourse/session_signing_key \
--tsa-host-key /opt/concourse/tsa_host_key \
--tsa-authorized-keys /opt/concourse/authorized_worker_keys \
--postgres-user=concourse \
--postgres-password=DBPassword \
--postgres-database=concourse \
--external-url http://192.0.2.1:8080
Altere o nome de usuário e a senha, basic-auth
se desejar. Verifique se o caminho para os arquivos de chave está correto e se o valor correto para nome de usuário e senha na configuração do banco de dados PostgreSQL é fornecido.
Nota : O ATC escutará a porta padrão 8080
e o TSA escutará a porta 2222
. Se a autenticação não for desejada, passe a --no-really-i-dont-want-any-auth
opção após remover as opções básicas de autenticação.
Depois que o servidor da web for iniciado, a seguinte saída será exibida.
{"timestamp":"1503657859.661247969","source":"tsa","message":"tsa.listening","log_level":1,"data":{}}
{"timestamp":"1503657859.666907549","source":"atc","message":"atc.listening","log_level":1,"data":{"debug":"127.0.0.1:8079","http":"0.0.0.0:8080"}}
Pare o servidor por enquanto, pois mais algumas coisas ainda precisam ser configuradas.
Inicie o Concourse CI Worker.
sudo concourse worker \
--work-dir /opt/concourse/worker \
--tsa-host 127.0.0.1 \
--tsa-public-key /opt/concourse/tsa_host_key.pub \
--tsa-worker-private-key /opt/concourse/worker_key
O comando acima assumirá que o TSA está sendo executado no host local e escutando a porta padrão 2222
.
Embora a web e o trabalhador do Concourse possam ser iniciados facilmente usando os comandos acima, é recomendável usar o Systemd para gerenciar o servidor.
O uso do serviço Systemd para gerenciar o aplicativo garante que o aplicativo seja iniciado automaticamente em caso de falhas e no momento da inicialização. O servidor Concourse não aceita dados de nenhum arquivo de configuração, mas pode acessar os dados de variáveis de ambiente. Em vez de definir variáveis de ambiente globais, crie um novo arquivo para armazenar as variáveis de ambiente e depois passe as variáveis para o Concourse CI usando o serviço Systemd.
Crie um novo arquivo de ambiente para a web do Concourse.
sudo nano /opt/concourse/web.env
Preencher o arquivo.
CONCOURSE_SESSION_SIGNING_KEY=/opt/concourse/session_signing_key
CONCOURSE_TSA_HOST_KEY=/opt/concourse/tsa_host_key
CONCOURSE_TSA_AUTHORIZED_KEYS=/opt/concourse/authorized_worker_keys
CONCOURSE_POSTGRES_USER=concourse
CONCOURSE_POSTGRES_PASSWORD=DBPassword
CONCOURSE_POSTGRES_DATABASE=concourse
CONCOURSE_BASIC_AUTH_USERNAME=admin
CONCOURSE_BASIC_AUTH_PASSWORD=StrongPass
CONCOURSE_EXTERNAL_URL=http://192.0.2.1:8080
Altere o nome de usuário e a senha, BASIC_AUTH
se desejar. Verifique se o caminho para os arquivos de chave está correto e se o valor correto para nome de usuário e senha na configuração do banco de dados PostgreSQL é fornecido.
Da mesma forma, crie um arquivo de ambiente para o trabalhador.
sudo nano /opt/concourse/worker.env
Preencher o arquivo.
CONCOURSE_WORK_DIR=/opt/concourse/worker
CONCOURSE_TSA_WORKER_PRIVATE_KEY=/opt/concourse/worker_key
CONCOURSE_TSA_PUBLIC_KEY=/opt/concourse/tsa_host_key.pub
CONCOURSE_TSA_HOST=127.0.0.1
Como os arquivos de ambiente contêm nomes de usuário e senhas, altere suas permissões para que não possam ser acessados por outros usuários.
sudo chmod 600 /opt/concourse/*.env
Agora crie um novo usuário para o Concourse para executar o ambiente da web. Isso garantirá que o servidor da web esteja sendo executado em um ambiente isolado.
sudo useradd concourse
Conceda ao usuário do concurso a propriedade do diretório do arquivo de IC do concurso.
sudo chown -R concourse:concourse /opt/concourse
Crie um novo arquivo de serviço systemd para o serviço da web Concourse.
sudo nano /etc/systemd/system/concourse-web.service
Preencher o arquivo.
[Unit]
Description=Concourse CI web server
[Service]
Type=simple
User=concourse
Group=concourse
Restart=on-failure
EnvironmentFile=/opt/concourse/web.env
ExecStart=/usr/bin/concourse web
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=concourse_web
[Install]
WantedBy=multi-user.target
Salve e feche o arquivo. Crie um novo arquivo de serviço para o serviço do trabalhador do Concourse.
sudo nano /etc/systemd/system/concourse-worker.service
Preencher o arquivo.
[Unit]
Description=Concourse CI worker process
[Service]
Type=simple
Restart=on-failure
EnvironmentFile=/opt/concourse/worker.env
ExecStart=/usr/bin/concourse worker
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=concourse_worker
[Install]
WantedBy=multi-user.target
O serviço da web e do trabalhador agora pode ser iniciado diretamente.
sudo systemctl start concourse-web concourse-worker
Para permitir que o processo de trabalho e da Web seja iniciado automaticamente no momento da inicialização, execute o seguinte.
sudo systemctl enable concourse-worker concourse-web
Para verificar o status dos serviços, execute o seguinte.
sudo systemctl status concourse-worker concourse-web
Se o serviço não for iniciado, ou no FAILED
estado, remova o cache do /tmp
diretório.
sudo rm -rf /tmp/*
Reinicie os serviços.
sudo systemctl restart concourse-worker concourse-web
Observe que desta vez os serviços foram iniciados corretamente. A saída ao verificar o status dos serviços será semelhante à seguinte.
[user@vultr ~]$ sudo systemctl status concourse-worker concourse-web
● concourse-worker.service - Concourse CI worker process
Loaded: loaded (/etc/systemd/system/concourse-worker.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2017-08-26 07:27:37 UTC; 55s ago
Main PID: 3037 (concourse)
CGroup: /system.slice/concourse-worker.service
└─3037 /usr/bin/concourse worker
Aug 26 07:27:42 vultr.guest concourse_worker[3037]: {"timestamp":"1503732462.934722900","source":"tsa","message":"t...""}}
Aug 26 07:27:42 vultr.guest concourse_worker[3037]: {"timestamp":"1503732462.941227913","source":"guardian","messag...0"}}
...
● concourse-web.service - Concourse CI web server
Loaded: loaded (/etc/systemd/system/concourse-web.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2017-08-26 07:27:37 UTC; 55s ago
Main PID: 3036 (concourse)
CGroup: /system.slice/concourse-web.service
└─3036 /usr/bin/concourse web
Aug 26 07:27:57 vultr.guest concourse_web[3036]: {"timestamp":"1503732477.925554752","source":"tsa","message":"tsa...ve"}}
Aug 26 07:28:02 vultr.guest concourse_web[3036]: {"timestamp":"1503732482.925430775","source":"tsa","message":"tsa...ve"}}
...
Hint: Some lines were ellipsized, use -l to show in full.
Depois que o servidor é iniciado, a interface da web do Concourse CI pode ser acessada acessando http://192.0.2.1:8080
qualquer navegador. Efetue login usando o nome de usuário e a senha fornecidos no arquivo de ambiente.
Para se conectar ao servidor usando o Fly, execute o seguinte.
fly -t my-ci login -c http://192.0.2.1:8080
O comando acima é usado para o logon inicial no servidor. -t
é usado para fornecer um nome de destino. substitua my-ci
por qualquer nome de destino desejado. O comando acima fará login na equipe padrão main
. Ele solicitará o nome de usuário e a senha fornecidos no arquivo de ambiente.
A saída será semelhante à seguinte.
[user@vultr ~]$ fly -t my-ci login -c http://192.0.2.1:8080
logging in to team 'main'
username: admin
password:
target saved
O login de destino será salvo por um dia. Depois disso, ele expirará.
Para sair imediatamente.
fly -t my-ci logout
O Fly pode ser usado para efetuar login no servidor fora da rede, mas apenas se o servidor tiver um endereço IP público e puder ser acessado de fora da rede. O binário do Windows ou MacOS pode ser baixado do site de download ou da interface do usuário da web do servidor.
Logins e outras informações enviadas pela interface do usuário da web ao servidor Concourse não são protegidos. A conexão não está criptografada. Um proxy reverso Nginx pode ser configurado com um SSL grátis Let's Encrypt.
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 ci.example.com
Os certificados gerados provavelmente serão armazenados no /etc/letsencrypt/live/ci.example.com/
diretório O certificado SSL será armazenado como fullchain.pem
e a chave privada será armazenada como privkey.pem
.
Vamos criptografar certificados expiram em 90 dias, portanto, é recomendável que a renovação automática seja feita usando cronjobs. Cron é um serviço do sistema usado para executar tarefas periódicas.
Abra o arquivo de tarefa cron.
sudo crontab -e
Adicione a seguinte linha no 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 host virtual.
sudo nano /etc/nginx/sites-available/concourse
Preencher o arquivo.
server {
listen 80;
server_name ci.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name ci.example.com;
ssl_certificate /etc/letsencrypt/live/ci.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ci.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/concourse.access.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8080;
proxy_read_timeout 90;
proxy_redirect http://localhost:8080 https://ci.example.com;
}
}
Nota : Substitua ci.example.com
pelo domínio real.
Ative o arquivo de configuração.
sudo ln -s /etc/nginx/sites-available/concourse /etc/nginx/sites-enabled/concourse
Edite o arquivo de ambiente criado para o concurso da Web.
sudo nano /opt/concourse/web.env
Altere o valor de CONCOURSE_EXTERNAL_URL
e também adicione mais duas linhas no final do arquivo.
CONCOURSE_EXTERNAL_URL=https://ci.example.com
CONCOURSE_BIND_IP=127.0.0.1
CONCOURSE_BIND_PORT=8080
Salve o arquivo e reinicie o Concourse Web, Worker e Nginx.
sudo systemctl restart concourse-worker concourse-web nginx
Todos os dados enviados para e do navegador agora estão protegidos com criptografias SSL.
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, 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.
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+
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.
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
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
À 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
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.