2
respostas

Instalando Ansible e o primeiro comando

Boa noite,

Estou utilizando máquina Windows criei duas VMS (Primeira wordpress e a segunda Ansibleteste) e usando o Vagrant para simular o ambiente.

Ao utilizar o comando da maquina (ansibleteste) passado na aula: ansible -vvvv wordpress -u vagrant --private-key .vagrant/machines/wordpress/virtualbox/private_key -i hosts -m shell -a 'echo Hello, World'

Aparece a mensagem command not found.

Poderiam me ajudar

Aguardo

Atenciosamente, Adjail Junior

2 respostas

Agora esta aparecendo a seguinte mensagem

ERROR: Unable to find an inventory file, specify one with -i ?

Salve, Srs

Em meu plano de estudo utilizei Windows com:

  • Vagrant
  • Virtualbox
  • Git bash
  • Atom

O Ansible pra se comunicar com os servidores ele utiliza as chaves publica do ssh dos hosts.

Dessa forma na criação dos servidores ja setei no Vagrantfile pra que fosse ajustado a comunicação.

Gerei a chave ssh no Git bash com o nome id_hirsute dento da pasta que utilizei para criar o projeto que irei utlizar durante o curso

$ ssh-keygen.exe -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/usuario/.ssh/id_rsa): /d/ambinte_dev/ansible/config/id_hirsute

Com isso no Vagrantfile fiz a criação dos servidores.

  • Ansible
  • Web
  • Mysql

Usei as informação abaixo no Vagrantfile

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/hirsute64"
    config.vm.define "ansible" do |ansible|
      ansible.vm.network "public_network", ip: "192.168.10.108"
      ansible.vm.provision "shell",  inline: "cat /config/id_hirsute > /home/vagrant/id_hirsute && \
                                            chmod 600 /home/vagrant/id_hirsute  && \
                                            chown vagrant:vagrant /home/vagrant/id_hirsute "
      ansible.vm.provision "shell",  inline: "apt-get update && \
                                            apt-get upgrade -y && \
                                            apt-get install python -y && \
                                            apt-add-repository ppa:ansible/ansible && \
                                            apt install ansible -y "
      ansible.vm.synced_folder "./config", "/config"
      ansible.vm.synced_folder ".", "/vagrant", disabled: true
        ansible.vm.provider "virtualbox" do |ansible|
          ansible.memory = 1024
          ansible.cpus = 1
          ansible.name = "SRVANS01"
        end
    end
    config.vm.define "web" do |web|
      web.vm.network "public_network", ip: "192.168.10.111"
      web.vm.provision "shell",  inline: "cat /config/id_hirsute.pub >> .ssh/authorized_keys"
      web.vm.synced_folder "./config", "/config"
      web.vm.synced_folder ".", "/vagrant", disabled: true
        web.vm.provider "virtualbox" do |web|
          web.memory = 1024
          web.cpus = 1
          web.name = "SRVWEB01"
        end
    end
    config.vm.define "mysql" do |mysql|
      mysql.vm.network "public_network", ip: "192.168.10.110"
      mysql.vm.provision "shell",  inline: "cat /config/id_hirsute.pub >> .ssh/authorized_keys"
      mysql.vm.synced_folder "./config", "/config"
      mysql.vm.synced_folder ".", "/vagrant", disabled: true
        mysql.vm.provider "virtualbox" do |mysql|
          mysql.memory = 2048
          mysql.cpus = 2
          mysql.name = "SRVSQL01"
        end
    end
  end

Importante que a chave privada seja adicionado no arquivo .ssh/authorized_keys dos servidores client e a publica onde for realizar o comando.

No servidor Ansible pode validar se a chave ta disponivel para ser utilizada

vagrant@ubuntu-hirsute:~$ pwd
/home/vagrant
vagrant@ubuntu-hirsute:~$ ls id_hirsute
id_hirsute
vagrant@ubuntu-hirsute:~$

Nos servidores host tem que ter 2 chaves a privada criada pelo vagrant e a nova

vagrant@ubuntu-hirsute:~$ cat .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCv2buz26IOy4k3TbABpAd8qND68Im0UW+vGlAD5Mk2rG8vr7otsibPTSYtuG9CbNalaXUSU2l1ekzNQvh2TSRHkTU8BFLne056bY8zmX0I16xzJgg7QgN76fqtQo9tki/NdhjMEzoXXltTmOV+ayBdreN73KrDua/fckvbXbyipp16+WAyCkoRl3BlA08wkPjXwOZzeo0En4n+qPZlbwZYUaL4ZAq/AlHNc4nUzz6GOZIMpAiwzFJxqS0N7kB39kY/J7DqfoeKY4cf8m6q7QA+jLs0XCJzSCikBArmW4M/V2+JGR949TkISTwktVdKWRnAwqfhzXMbMbT23QnEDGMV vagrant
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCzr/zm5hPfG4zyte3q/AlEdAujIZQVBPCG9WmK2jWZasJTOUptWuqW7CUgdGjLD5/TS7o9P5gxYDXtSK9Ks7O0l7/sFU50WnMdzrfNVJpywhiPyDyIPxtUeUaAm+727/6uLN13GfepOwlRqeTce8CAKjkywoS8KWCZRGLXg1rZE4YpbvAu4Oyf7zIrL5BbHLz1dGu7D4MTyvsf4r7/BbKRKxtMTgkfVG+S0froj63pDlfwjCOlzFhbbOsAauZDP70UL4cmCeho3PoA/EQSWaBbqyEDs3f1/9KhNgfqEaBVONSDJ3lDgAEc26lWtdBADqjUuCt0HatolO5/FPsLuyXaGii8W0HS0EDPNiw6hkkhvfrdrseswssasds1srDhABVDJRSB07FG+JJcGRDja6On7wxkAxL4IzZNogTPuUa29vqzdbo/Kr/HUNss2//+gEPyDACX6XTjjadmTPBp4vMYpGI1+hz98oYLSq3q99RWlhNCz9d5Kfz9BvU= user@nome_do_PC
vagrant@ubuntu-hirsute:~$

Com isso vai ter o ambiente criado e com as credencias de acesso.

Importante Na pasta config pode utilizar para salvar o arquivo dos hosts e o playbook

O comando ficaria algo como

ansible-playbook /config/ansible/provisioning.yml -i /config/ansible/hosts -m shell -a 'echo Hello, World'

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software