Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Erro ao executar comando "ansible-playbook playbook.yml -u ubuntu --private-key my-private-key.pem -i hosts.yml" na aula "Ansible e Python"

Ao executar o comando, tenho como resultado a seguinte mensagem: Mensagem de erro ao executar comando ansible-playbookFiz umas pesquisas na internet, mas não achei nada parecido. Tentei ver a documentação mais atualizada do ansible mas nada que pudesse me forncecer alguma dica. Ao que me parece, o problema é a instância na aws que não encontra o servidor de onde baixar as dependências, mas não sei como resolver esse problema. Estou usando um computador com ubuntu, e minha IDE é o vscode. Meu arquivo playbook.yml está idêntico ao da aula:

- hosts: terraform-ansible
  tasks:
  - name: Instalando  python3 e virtualenv.
    apt:
      pkg:
        - python3
        - virtualenv
      update_cache: yes
    become: yes
2 respostas

Fiz algo aqui que resolveu meu problema. Meu arquivo main.tf estava com ami = "ami-830c94e3":

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.16"
    }
  }

  required_version = ">= 1.2.0"
}

provider "aws" {
  region  = "us-west-2"
}

resource "aws_instance" "app_server" {
  ami           = "ami-830c94e3"
  instance_type = "t2.micro"
  key_name = "terraform-curso-alura"
  tags = {
    Name = "Terraform ansible python"
  }
}

Então destruí esta instância, fui no catálogo de AMIs e escolhi outra ami. Refiz todos os passos para construir uma nova instância e depois executei o comando "ansible-playbook playbook.yml -u ubuntu --private-key my-private-key.pem -i hosts.yml" novamente e deu certo. Mas não sei dizer porque o mesmo comando não funciona para a instância cujo ami é ami-830c94e3.

solução!

Olá, Williams.

Tudo bem?

O erro que você encontrou foi devido à AMI ami-830c94e3 ser uma versão antiga do Ubuntu (12.04), cujos repositórios foram desativados. Por isso, o apt-get não conseguiu acessar os pacotes necessários.

Solução:

  1. Escolha uma AMI mais atual (como Ubuntu 20.04 ou 22.04).
  2. Destrua a instância antiga e crie uma nova com a AMI atualizada.
  3. Execute o comando Ansible novamente.

Ao usar uma AMI atualizada, os repositórios estarão disponíveis e o playbook funcionará corretamente.

Espero ter ajudado. Qualquer dúvida manda aqui. Valeu.