Blog

AER: Multiple Corrected error received

O seu disco rígido no Ubuntu encheu devido aos logs excessivos no syslog e no kernel, contendo essas informações. Jun 15 11:38:52 x99 kernel: pcieport 0000:00:03.0: AER: Multiple Corrected error received: id=0018 Jun 15 15:38:52 x99 kernel: pcieport 0000:00:03.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, id=0018(Receiver ID) Posso dar pelo menos alguns detalhes, embora não consiga explicar completamente o que acontece. Conforme descrito aqui , por exemplo , a CPU se comunica com o controlador de barramento PCIe por meio de pacotes da camada de transação (TLPs). O hardware detecta quando há falhas e o kernel do Linux relata isso como mensagens. A opção do kernel pci=nommconf desativa o espaço de configuração PCI mapeado em memória, que está disponível no Linux desde o kernel 2.6. Grosso modo, todos os dispositivos PCI possuem uma área que descreve esse dispositivo (que você vê com lspci -vv), e o método original para acessar essa área envolve

Como executar GitHub Actions localmente usando a ferramenta act

No post anterior, apresentei a ferramenta ACT para vocês. Agora, vamos fazer a instalação e mostrar alguns exemplos práticos, para que vocês possam ver a ferramenta em ação na prática. Instalação: A ferramenta actCLI funciona com Docker. Antes de começar com actCLI, primeiro instale o Docker em seu computador ou laptop. Para instalar a actCLI, você precisa executar o seguinte comando: # Windowschoco install act-cli# MacOSbrew install act# Linuxcurl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash No meu caso, estou utilizando o Linux Ubuntu 22.04 e o resultado obtido foi o seguinte: Depois que a instalação da CLI for bem-sucedida em seu laptop ou computador, a próxima etapa é executá-la em seu projeto. Existem vários tamanhos de imagem Docker: Na primeira execução, será retornado o seguinte setup: git:(main) ✗ act? Please choose the default image you want to use with act: – Large size image: ca. 17GB download + 53.1GB storage, you will need

Teste seus Workflows do GitHub Actions Localmente com ACT

O GitHub Actions é uma plataforma poderosa que permite automatizar uma ampla variedade de tarefas no seu fluxo de trabalho de desenvolvimento. Uma das ferramentas que complementa essa funcionalidade é o ACT , que facilita enormemente o teste de seus workflows de CI/CD localmente. Neste post, vamos explorar as principais características e benefícios do ACT, para que você possa aproveitá-lo em seus projetos e acelerar seu processo de desenvolvimento. O que é o ACT?O ACT é uma ferramenta de linha de comando (CLI) desenvolvida pela equipe do GitHub Actions. Ela permite testar seus workflows de GitHub Actions localmente, antes mesmo de fazer o push para o repositório remoto. Isso significa que você pode validar e depurar seus workflows sem precisar esperar pelo processo de integração contínua no GitHub. Principais Recursos do ACT: Benefícios do Uso do ACT: O ACT é uma ferramenta essencial para quem trabalha com

Terraform: Gerenciando dependências entre recursos

No Terraform, as dependências entre os recursos são gerenciadas de duas maneiras: dependências implícitas e dependências explícitas. Isso garante que os recursos sejam provisionados na ordem correta. Dependências Implícitas As dependências implícitas são aquelas que o Terraform entende automaticamente com base nas referências entre os recursos. Quando um recurso usa uma propriedade de outro recurso, o Terraform entende que existe uma dependência entre esses recursos. Exemplo de Dependência Implícita Vamos usar um exemplo simples de criar uma instância do AWS EC2 que depende de uma VPC e um grupo de segurança. resource “aws_vpc” “example_vpc” { cidr_block = “10.0.0.0/16”}resource “aws_security_group” “example_sg” { vpc_id = aws_vpc.example_vpc.id description = “Allow SSH” ingress { from_port = 22 to_port = 22 protocol = “tcp” cidr_blocks = [“0.0.0.0/0”] }}resource “aws_instance” “example_instance” { ami = “ami-0c55b159cbfafe1f0” instance_type = “t2.micro” vpc_security_group_ids = [aws_security_group.example_sg.id] subnet_id = aws_vpc.example_vpc.default_subnet_id} Neste exemplo: A instância aws_instance.example_instance depende tanto

Introdução ao Pip: Seu Guia para o Gerenciamento de Pacotes Python

Explicar o que é o pip e sua importância para o ecossistema Python. Mencionar que este post irá cobrir os conceitos básicos do pip e como utilizá-lo de forma eficiente. O que é o Pip? Instalando o Pip No meu caso, estou utilizando o Ubuntu 22.04, porém é importante seguir a documentação específica do seu sistema operacional para fazer a instalação correta do pip. A instalação do pip pode variar ligeiramente entre diferentes distribuições Linux, macOS ou Windows. Por exemplo, no Ubuntu 22.04, você pode instalar o pip executando o seguinte comando no terminal: sudo apt-get updatesudo apt-get install -y python3-pippip3 –version Usando o Pip Comandos básicos do pip: pip install <pacote> EX: pip install flask pip uninstall <pacote> Ex: pip uninstall flask Ex: pip install –upgrade flask Ex: pip list Por último, o comando pip freeze é bastante interessante. Ele gera uma saída no formato do requirements.txt,

Como criar um ambiente virtual Python no Ubuntu 22.04

Ao trabalhar com projetos Python, é comum ter a necessidade de gerenciar diferentes versões de bibliotecas e dependências. Um ambiente virtual Python é uma excelente solução para esse problema, permitindo que você crie e isole ambientes de desenvolvimento independentes. Neste tutorial, vamos aprender passo a passo como criar um ambiente virtual Python no Ubuntu 22.04. Pré-requisitos Antes de começarmos, certifique-se de ter o Python 3 instalado em seu sistema Ubuntu 22.04. Você pode verificar a versão do Python executando o seguinte comando no terminal: #python3 — version Se o Python 3 não estiver instalado, você pode instalá-lo com o seguinte comando: sudo apt-get updatesudo apt-get install python3 Criando um ambiente virtual Python sudo apt-get install python3-virtualenv python3 -m venv deltaops Neste exemplo, estamos criando um ambiente virtual chamado “deltaops”. Você pode escolher qualquer nome que desejar. source deltaops/bin/activate Você verá (deltaops) no

Docker: Comandos básicos

Docker é uma tecnologia essencial para qualquer desenvolvedor ou profissional de infraestrutura que trabalhe com ambientes de containerização. Dominar os comandos básicos do Docker é fundamental para construir, gerenciar e implantar aplicações de forma eficiente. Neste post, vamos explorar os comandos Docker mais importantes que você precisa conhecer. Construir uma imagem do Docker docker build -t <nome_da_imagem> . Listar imagens docker images Executar um container docker run -p <porta_do_host>:<porta_do_container> <nome_da_imagem> Listar os containers em execução docker ps ou docker ps -a Parar um container em execução docker stop <id_ou_nome_do_container> Remover um container docker rm <id_ou_nome_do_container> Remover uma imagem docker rmi <nome_da_imagem> Exibir logs de um container docker logs <id_ou_nome_do_container> Com esses comandos em mãos, você será capaz de construir, gerenciar e implantar seus aplicativos em ambientes containerizados de forma ágil e eficiente. Mantenha esse post como referência e pratique regularmente para se tornar

Docker: Seu primeiro Dockerfile

Vamos criar o nosso primeiro Dockerfile. Vamos supor que temos uma aplicação Python simples com um arquivo app.py que contém o seguinte código: from flask import Flaskapp = Flask(__name__)@app.route(‘/’)def hello(): return ‘Hello, World!’if __name__ == ‘__main__’: app.run(host=’0.0.0.0′, port=8080) Aqui está o passo a passo para criar o Dockerfile: # Use a imagem base do PythonFROM python:3.9-slim# Defina o diretório de trabalhoWORKDIR /app# Copie os arquivos da aplicação para o diretório de trabalhoCOPY . .# Instale as dependências da aplicaçãoRUN pip install –no-cache-dir -r requirements.txt# Defina o comando de execução da aplicaçãoCMD [“python”, “app.py”] Vamos explicar o que cada linha faz: Agora, crie o arquivo requirements.txt no mesmo diretório da sua aplicação e adicione as seguintes linhas: Flask==2.0.2 Isso especifica que a aplicação depende da biblioteca Flask, na versão 2.0.2. docker build -t minha-aplicacao-python . Este comando constrói a imagem do Docker usando o Dockerfile

Terraform: Ferramentas essenciais que você precisa conhecer

Familiarize-se com estas ferramentas essenciais para aprimorar sua experiência com o Terraform. TFLint O TFLint é um linter do Terraform focado em possíveis erros, melhores práticas e convenções de estilo no seu código do Terraform. Quando usar o TFLint: Você pode executar o TFLint antes do comando terraform plan para detectar problemas antecipadamente. Por exemplo, digamos que você defina uma instância AWS EC2 em sua configuração do Terraform e faça referência erroneamente a uma AMI que não existe. O TFLint pode identificar o problema do ID da AMI antes de você executar o comando terraform plan ou terraform apply: $ tflint main.tf1 issue(s) found:Error: “ami-12345678” is an invalid AMI ID. (aws_instance_invalid_ami)on main.tf line 2: 2: ami = “ami-12345678” Instalação: https://github.com/terraform-linters/tflint Terrascan Terrascan é uma ferramenta de análise estática de código que verifica suas configurações de Infraestrutura como Código (IaC) em busca de vulnerabilidades de segurança e violações de

Linux: Comandos Básicos de Rede

Se você é um entusiasta de Linux e está em busca de conhecimentos para aprimorar suas habilidades em administração de redes, este post é perfeito para você. Vamos explorar os principais comandos básicos de rede para Linux, que são essenciais para configurar e diagnosticar sua infraestrutura de rede. ping: Teste a conectividade com outros hosts usando o protocolo ICMP. EX: ping <ip ou DNS> traceroute: Descubra a rota que os pacotes de rede seguem até um destino. EX: traceroute <DNS> Mostra os saltos (hops) que os pacotes fazem para alcançar o servidor do Google. netstat: Obtenha informações sobre conexões de rede e estatísticas. Ex: netstat -tuln Exibe as conexões TCP e UDP ativas, juntamente com os números das portas. nslookup: Realize consultas DNS para obter informações sobre nomes de host e endereços IP. Ex: # nslookup <DNS> Mostra o endereço IP associado ao nome de domínio

AER: Multiple Corrected error received

O seu disco rígido no Ubuntu encheu devido aos logs excessivos no syslog e no kernel, contendo essas informações. Jun 15 11:38:52 x99 kernel: pcieport 0000:00:03.0: AER: Multiple Corrected error received: id=0018 Jun 15 15:38:52 x99 kernel: pcieport 0000:00:03.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, id=0018(Receiver ID) Posso dar pelo menos alguns detalhes, embora não consiga explicar completamente o que acontece. Conforme descrito aqui , por exemplo , a CPU se comunica com o controlador de barramento PCIe por meio de pacotes da camada de transação (TLPs). O hardware detecta quando há falhas e o kernel do Linux relata isso como mensagens. A opção do kernel pci=nommconf desativa o espaço de configuração PCI mapeado em memória, que está disponível no Linux desde o kernel 2.6. Grosso modo, todos os dispositivos PCI possuem uma área que descreve esse dispositivo (que você vê com lspci -vv), e o método original para acessar essa área envolve

Leia mais

Como executar GitHub Actions localmente usando a ferramenta act

No post anterior, apresentei a ferramenta ACT para vocês. Agora, vamos fazer a instalação e mostrar alguns exemplos práticos, para que vocês possam ver a ferramenta em ação na prática. Instalação: A ferramenta actCLI funciona com Docker. Antes de começar com actCLI, primeiro instale o Docker em seu computador ou laptop. Para instalar a actCLI, você precisa executar o seguinte comando: # Windowschoco install act-cli# MacOSbrew install act# Linuxcurl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash No meu caso, estou utilizando o Linux Ubuntu 22.04 e o resultado obtido foi o seguinte: Depois que a instalação da CLI for bem-sucedida em seu laptop ou computador, a próxima etapa é executá-la em seu projeto. Existem vários tamanhos de imagem Docker: Na primeira execução, será retornado o seguinte setup: git:(main) ✗ act? Please choose the default image you want to use with act: – Large size image: ca. 17GB download + 53.1GB storage, you will need

Leia mais

Teste seus Workflows do GitHub Actions Localmente com ACT

O GitHub Actions é uma plataforma poderosa que permite automatizar uma ampla variedade de tarefas no seu fluxo de trabalho de desenvolvimento. Uma das ferramentas que complementa essa funcionalidade é o ACT , que facilita enormemente o teste de seus workflows de CI/CD localmente. Neste post, vamos explorar as principais características e benefícios do ACT, para que você possa aproveitá-lo em seus projetos e acelerar seu processo de desenvolvimento. O que é o ACT?O ACT é uma ferramenta de linha de comando (CLI) desenvolvida pela equipe do GitHub Actions. Ela permite testar seus workflows de GitHub Actions localmente, antes mesmo de fazer o push para o repositório remoto. Isso significa que você pode validar e depurar seus workflows sem precisar esperar pelo processo de integração contínua no GitHub. Principais Recursos do ACT: Benefícios do Uso do ACT: O ACT é uma ferramenta essencial para quem trabalha com

Leia mais

Terraform: Gerenciando dependências entre recursos

No Terraform, as dependências entre os recursos são gerenciadas de duas maneiras: dependências implícitas e dependências explícitas. Isso garante que os recursos sejam provisionados na ordem correta. Dependências Implícitas As dependências implícitas são aquelas que o Terraform entende automaticamente com base nas referências entre os recursos. Quando um recurso usa uma propriedade de outro recurso, o Terraform entende que existe uma dependência entre esses recursos. Exemplo de Dependência Implícita Vamos usar um exemplo simples de criar uma instância do AWS EC2 que depende de uma VPC e um grupo de segurança. resource “aws_vpc” “example_vpc” { cidr_block = “10.0.0.0/16”}resource “aws_security_group” “example_sg” { vpc_id = aws_vpc.example_vpc.id description = “Allow SSH” ingress { from_port = 22 to_port = 22 protocol = “tcp” cidr_blocks = [“0.0.0.0/0”] }}resource “aws_instance” “example_instance” { ami = “ami-0c55b159cbfafe1f0” instance_type = “t2.micro” vpc_security_group_ids = [aws_security_group.example_sg.id] subnet_id = aws_vpc.example_vpc.default_subnet_id} Neste exemplo: A instância aws_instance.example_instance depende tanto

Leia mais

Introdução ao Pip: Seu Guia para o Gerenciamento de Pacotes Python

Explicar o que é o pip e sua importância para o ecossistema Python. Mencionar que este post irá cobrir os conceitos básicos do pip e como utilizá-lo de forma eficiente. O que é o Pip? Instalando o Pip No meu caso, estou utilizando o Ubuntu 22.04, porém é importante seguir a documentação específica do seu sistema operacional para fazer a instalação correta do pip. A instalação do pip pode variar ligeiramente entre diferentes distribuições Linux, macOS ou Windows. Por exemplo, no Ubuntu 22.04, você pode instalar o pip executando o seguinte comando no terminal: sudo apt-get updatesudo apt-get install -y python3-pippip3 –version Usando o Pip Comandos básicos do pip: pip install <pacote> EX: pip install flask pip uninstall <pacote> Ex: pip uninstall flask Ex: pip install –upgrade flask Ex: pip list Por último, o comando pip freeze é bastante interessante. Ele gera uma saída no formato do requirements.txt,

Leia mais

Como criar um ambiente virtual Python no Ubuntu 22.04

Ao trabalhar com projetos Python, é comum ter a necessidade de gerenciar diferentes versões de bibliotecas e dependências. Um ambiente virtual Python é uma excelente solução para esse problema, permitindo que você crie e isole ambientes de desenvolvimento independentes. Neste tutorial, vamos aprender passo a passo como criar um ambiente virtual Python no Ubuntu 22.04. Pré-requisitos Antes de começarmos, certifique-se de ter o Python 3 instalado em seu sistema Ubuntu 22.04. Você pode verificar a versão do Python executando o seguinte comando no terminal: #python3 — version Se o Python 3 não estiver instalado, você pode instalá-lo com o seguinte comando: sudo apt-get updatesudo apt-get install python3 Criando um ambiente virtual Python sudo apt-get install python3-virtualenv python3 -m venv deltaops Neste exemplo, estamos criando um ambiente virtual chamado “deltaops”. Você pode escolher qualquer nome que desejar. source deltaops/bin/activate Você verá (deltaops) no

Leia mais

Docker: Comandos básicos

Docker é uma tecnologia essencial para qualquer desenvolvedor ou profissional de infraestrutura que trabalhe com ambientes de containerização. Dominar os comandos básicos do Docker é fundamental para construir, gerenciar e implantar aplicações de forma eficiente. Neste post, vamos explorar os comandos Docker mais importantes que você precisa conhecer. Construir uma imagem do Docker docker build -t <nome_da_imagem> . Listar imagens docker images Executar um container docker run -p <porta_do_host>:<porta_do_container> <nome_da_imagem> Listar os containers em execução docker ps ou docker ps -a Parar um container em execução docker stop <id_ou_nome_do_container> Remover um container docker rm <id_ou_nome_do_container> Remover uma imagem docker rmi <nome_da_imagem> Exibir logs de um container docker logs <id_ou_nome_do_container> Com esses comandos em mãos, você será capaz de construir, gerenciar e implantar seus aplicativos em ambientes containerizados de forma ágil e eficiente. Mantenha esse post como referência e pratique regularmente para se tornar

Leia mais

Docker: Seu primeiro Dockerfile

Vamos criar o nosso primeiro Dockerfile. Vamos supor que temos uma aplicação Python simples com um arquivo app.py que contém o seguinte código: from flask import Flaskapp = Flask(__name__)@app.route(‘/’)def hello(): return ‘Hello, World!’if __name__ == ‘__main__’: app.run(host=’0.0.0.0′, port=8080) Aqui está o passo a passo para criar o Dockerfile: # Use a imagem base do PythonFROM python:3.9-slim# Defina o diretório de trabalhoWORKDIR /app# Copie os arquivos da aplicação para o diretório de trabalhoCOPY . .# Instale as dependências da aplicaçãoRUN pip install –no-cache-dir -r requirements.txt# Defina o comando de execução da aplicaçãoCMD [“python”, “app.py”] Vamos explicar o que cada linha faz: Agora, crie o arquivo requirements.txt no mesmo diretório da sua aplicação e adicione as seguintes linhas: Flask==2.0.2 Isso especifica que a aplicação depende da biblioteca Flask, na versão 2.0.2. docker build -t minha-aplicacao-python . Este comando constrói a imagem do Docker usando o Dockerfile

Leia mais

Terraform: Ferramentas essenciais que você precisa conhecer

Familiarize-se com estas ferramentas essenciais para aprimorar sua experiência com o Terraform. TFLint O TFLint é um linter do Terraform focado em possíveis erros, melhores práticas e convenções de estilo no seu código do Terraform. Quando usar o TFLint: Você pode executar o TFLint antes do comando terraform plan para detectar problemas antecipadamente. Por exemplo, digamos que você defina uma instância AWS EC2 em sua configuração do Terraform e faça referência erroneamente a uma AMI que não existe. O TFLint pode identificar o problema do ID da AMI antes de você executar o comando terraform plan ou terraform apply: $ tflint main.tf1 issue(s) found:Error: “ami-12345678” is an invalid AMI ID. (aws_instance_invalid_ami)on main.tf line 2: 2: ami = “ami-12345678” Instalação: https://github.com/terraform-linters/tflint Terrascan Terrascan é uma ferramenta de análise estática de código que verifica suas configurações de Infraestrutura como Código (IaC) em busca de vulnerabilidades de segurança e violações de

Leia mais

Linux: Comandos Básicos de Rede

Se você é um entusiasta de Linux e está em busca de conhecimentos para aprimorar suas habilidades em administração de redes, este post é perfeito para você. Vamos explorar os principais comandos básicos de rede para Linux, que são essenciais para configurar e diagnosticar sua infraestrutura de rede. ping: Teste a conectividade com outros hosts usando o protocolo ICMP. EX: ping <ip ou DNS> traceroute: Descubra a rota que os pacotes de rede seguem até um destino. EX: traceroute <DNS> Mostra os saltos (hops) que os pacotes fazem para alcançar o servidor do Google. netstat: Obtenha informações sobre conexões de rede e estatísticas. Ex: netstat -tuln Exibe as conexões TCP e UDP ativas, juntamente com os números das portas. nslookup: Realize consultas DNS para obter informações sobre nomes de host e endereços IP. Ex: # nslookup <DNS> Mostra o endereço IP associado ao nome de domínio

Leia mais