5
respostas

sudo: puppet: command not found

Ola pessoal,

Estou com problemas na execucao do pupplet na maquina virtual.

Durante o load da vm, o folder shared monta direitinho:

==> web: Mounting shared folders...
    web: /vagrant => /home/magister/musicjungle

O arquivo foi criado conforme o procedimento e executei o comando apos acessar a vm via ssh. Porem deu o erro ....

magister@magister-Aspire-5742 ~/musicjungle $ cat manifests/web.pp 
exec { "apt-update":
    command => "/usr/bin/apt-get update"
}

package { ["openjdk-7-jre", "tomcat7"]:
    ensure => installed,
    require => Exec["apt-update"]
}
magister@magister-Aspire-5742 ~/musicjungle $ vagrant ssh
Welcome to Ubuntu 12.04.5 LTS (GNU/Linux 3.13.0-32-generic i686)

 * Documentation:  https://help.ubuntu.com/
New release '14.04.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

Last login: Sat Jun 23 00:01:01 2018 from 10.0.2.2
vagrant@precise32:~$ whoami
vagrant
vagrant@precise32:~$ sudo puppet apply /vagrant/manifests/web.pp
sudo: puppet: command not found
5 respostas

Oi Gemerson, o puppet não vez instalado direto na máquina ubuntu por padrão. Se não me engano, o Vagrant só vai instalar ele se encontrar alguma instrução no Vagrantfile que indique o uso do puppet.

Pra fazer como está tentando fazer, você precisará instalar o puppet separadamente.

Acho que foi alguma atualização do Vagrant que mudou esse comportamento.

EDIT: A pergunta abaixo é respondida na aula seguinte. Podia ter alguma notificação no Alura avisando.

Opa, então, também tenho essa dúvida. No site do Vagrant ele avisou que não vem mais com o puppet.

Se eu preciso instalar o puppet manualmente, como eu faria o provision para ele rodar ao iniciar a máquina? (O código abaixo não funciona porque não tem o puppet instalado...)

web_config.vm.provision "puppet" do |puppet|
            puppet.manifest_file = "default.pp"
        end
The `puppet` binary appears not to be in the PATH of the guest. This
could be because the PATH is not properly setup or perhaps Puppet is not
installed on this guest. Puppet provisioning can not continue without
Puppet properly installed.

Fato, como eu disse no post anterior, vai ser preciso instalar ele primeiro antes de fazer o provisionamento, neste caso, você pode escrever um passo de provisionamento em shell que instala o puppet antes de usar ele.

Eu esperava que o vagrant detectasse o tipo de provisionamento e configurasse a ferramenta automaticamente, mas parece que ele não faz isso mesmo.

Olá pessoal,

Só hoje resolvi retomar o curso de Vagrant aonde parei e a solução foi dada por um outro colega (Guilherme Neves)em outro post:

https://cursos.alura.com.br/forum/topico-puppet-nao-instalado-na-m-aquina-guest-67675

Então:

Após execução do vagrant up, a parte relacionada ao puppet não funcionava, e após alteração do Vagrant File,conforme a dica do Guilherme Neves, executei o comando vagrant provision para realizar o provisionamento que faltava dos softwares. Ou então pode-se destruir a vm e executar somente o vagrant up.

Hm, então o problema tá resolvido Gemerson? Podemos marcar como solucionado?

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