А бродяга автоматически устанавливает марионетку?
У меня это в моем Vagrantfile
:
Vagrant.configure("2") do |config|
config.vm.provision "puppet"
end
Тем не менее, когда я запускаю puppet --version
, я получаю:
[[email protected] ~]$ puppet --version
-bash: puppet: command not found
Нужно ли вручную устанавливать марионетку?
Ответы
Ответ 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
Это должно установить марионетный агент для гостя, прежде чем выполнять другие настройки