Подтвердить что ты не робот

А бродяга автоматически устанавливает марионетку?

У меня это в моем Vagrantfile:

Vagrant.configure("2") do |config|
    config.vm.provision "puppet"
  end

Тем не менее, когда я запускаю puppet --version, я получаю:

[[email protected] ~]$ puppet --version
-bash: puppet: command not found

Нужно ли вручную устанавливать марионетку?

4b9b3361

Ответ 1

Да. Я не уверен, каково было состояние Vagrant во время некоторых из этих других ответов, но в наши дни куколку не нужно устанавливать через поставщика оболочки, так как Vagrant имеет встроенного поставщика поддержки кукол.

На самом базовом уровне вы можете убедиться, что puppet поддерживается на вашем компьютере, добавив в ваш Vagrantfile provision "puppet" или provision "puppet_server". Например:

#open config block (already present in your templated Vagrantfile)
Vagrant.configure(2) do |config|

  #...[snip]... other config.vm settings. Ex...
  # Ubuntu 14.04 LTS version
  #config.vm.box = "ubuntu/trusty64"

  # Make puppet avail inside machine
  config.vm.provision "puppet"


#close out Vagrant configuration for this instance
end

используя puppet устанавливает марионетка для локального puppet apply (используются локальные манифестов для настройки устройства), в то время как с помощью puppet_server крюки вы до кукловода, и позволяет предоставление вашей бродячую окно, используя кукольный сервер (кукольный мастер - агент).

Ответ 2

Нет (в данный момент) Vagrant не устанавливает его автоматически.

Таким образом, вам нужно либо использовать базовый ящик, который уже установлен (Puppet Labs предоставляет поля), либо вам нужно установить его самостоятельно. Вероятно, самый простой способ установить - использовать средство обеспечения оболочки перед марионеточными средствами обеспечения безопасности.

Ответ 3

В ответ на @tmatilai я создал эту простую настройку:

Vagrantfile:

Vagrant.configure(2) do |config|
  config.vm.box = "centos6.5_64"
  config.vm.provision "shell", path: "manifests/puppet.sh"
  config.vm.provision "puppet"
end

манифеста/puppet.sh:

echo "Adding puppet repo"
sudo rpm -ivh https://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm
echo "installing puppet"
sudo yum install puppet -y
echo "ensure puppet service is running"
sudo puppet resource service puppet ensure=running enable=true
#echo "ensure puppet service is running"
#sudo puppet resource service puppetmaster ensure=running enable=true

echo "ensure puppet service is running for standalone install"
sudo puppet resource cron puppet-apply ensure=present user=root minute=30 command='/usr/bin/puppet apply $(puppet apply --configprint manifest)'

[[email protected] home]$ puppet --version
3.4.2

Ответ 4

Если вы хотите использовать плагин, я создал тот, который автоматически установит Puppet из версии, указанной в Vagrantfile:

Vagrant.configure("2") do |config|

  config.puppet_install.puppet_version = :latest

end

Это также сделает несколько интересных трюков, например, убедитесь, что указанная вами марионеточная версия является допустимой версией и т.д., здесь полная информация: https://github.com/petems/vagrant-puppet-install/

Ответ 5

Как уже многие другие люди уже ответили, нет "стандарта", который гарантирует, что бродячий ящик будет предварительно установлен с помощью Puppet.

По замыслу, бродячий ящик мог бы "что-либо" предустановить на нем. Или это может быть так же легко "ничего" на всех предустановленных. Все зависит от того, кто его создал и что они включили в процесс создания окна.

Если вы обнаружите, что на вашем компьютере не установлен предустановленный Puppet, вы также можете использовать один из сценариев, который Mitchell Hashimoto собрал вместе. Подробнее см. Следующий проект GitHub...

https://github.com/hashicorp/puppet-bootstrap

Ответ 6

На этом этапе написания, Вагрант делает предварительную установку марионеточного обслуживания. Я ssh-ed в гостевую машину (использовал поле "ubuntu/trusty64" ) и получил следующий результат:

[email protected]:~$ puppet --version
3.4.3

Ответ 7

Как утверждают другие, это зависит от коробки. Например, ubuntu/trusty64 поставляется с предустановленной куклой, а ubuntu/xenial64 - нет.

Поэтому, чтобы исправить это для Ubuntu, ubuntu/xenial64 добавить встроенного ubuntu/xenial64 оболочки для Ubuntu ubuntu/xenial64:

config.vm.box = "ubuntu/xenial64"

config.vm.provision :shell, :inline => 'apt-get -y update; apt-get -y install puppet'

config.vm.provision :puppet do |puppet|
# ...

Ответ 8

По состоянию на 16 июня 2016 года Vagrant НЕ устанавливает марионетку в клиентской VM, насколько я могу судить. Я считаю, что это сестра проекта "упаковщик", он ожидает, что вы сделаете это явно. См.: https://www.packer.io/docs/provisioners/puppet-masterless.html

Примечание. Кукла не будет автоматически установлена ​​этим устройством. Этот провайдер ожидает, что Puppet уже установлен на машина. Общепринятой практикой является использование средства обеспечения оболочки до Предоставление марионеток для этого.

Ответ 9

this worked for me:

поместите это в свой Vagrantfile - до вашего обеспечения

$script = <<SCRIPT
echo I am installing puppet on guest 
sudo apt-get install -yq puppet=*
SCRIPT

Vagrant.configure("2") do |config|
  config.vm.provision "shell", inline: $script
end

Это должно установить марионетный агент для гостя, прежде чем выполнять другие настройки