以前我有一个类似的配置,但是当我将 hiera 添加到我的 puppet 构建中时,我开始遇到问题。我目前运行后遇到的错误vagrant provision
如下:
==> default: [vagrant-hostsupdater] Checking for host entries
==> default: [vagrant-hostsupdater] found entry for: 192.168.33.10 local.mysite
==> default: Configuring cache buckets...
==> default: Running provisioner: puppet...
==> default: Running Puppet with app.pp...
==> default: stdin: is not a tty
==> default: Error: Could not find class nodejs for local.mysite on node local.mysite
==> default: Error: Could not find class nodejs for local.mysite on node local.mysite
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.
我的流浪配置是:
# -*- mode: ruby -*-
# vi: set ft=ruby :
require "yaml"
# Load yaml configuration
config_file = "#{File.dirname(__FILE__)}/config/vm_config.yml"
default_config_file = "#{File.dirname(__FILE__)}/config/.vm_config_default.yml"
vm_external_config = YAML.load_file(config_file)
# Configure Vagrant
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.box_url = "http://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
config.vm.network :private_network, ip: vm_external_config["ip"]
config.vm.hostname = vm_external_config["hostname"]
config.vm.network "forwarded_port", guest: vm_external_config["port"], host: 2368
config.vm.synced_folder vm_external_config["ghost_path"], "/var/www/mysite.com", :nfs => true
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", vm_external_config["memory"]]
end
config.cache.scope = :box
config.librarian_puppet.placeholder_filename = ".gitkeep"
config.vm.provision :puppet do |puppet|
puppet.hiera_config_path = "puppet/hiera/hiera.yaml"
puppet.manifests_path = "puppet/manifests"
puppet.manifest_file = "app.pp"
puppet.module_path = "puppet/modules"
puppet.facter = {
"environment" => ENV['ENV'] ? ENV['ENV'] : 'local'
}
end
end
我的源代码树看起来像这样(除了自定义博客模块和 hiera 配置的文件夹结构之外,大部分都不相关):
├── Vagrantfile
├── config
│ └── vm_config.yml
└── puppet
├── Puppetfile
├── hiera
│ ├── common.yaml
│ ├── hiera.yaml
│ ├── local
│ │ └── site.yaml
│ └── production
│ └── site.yaml
├── manifests
│ └── app.pp
└── modules
├── blog
│ └── manifests
│ └── app.pp
├── ghost
│ └── manifests
│ └── app.pp
├── init.d
│ └── files
│ ├── WebhookServer
│ └── ghost
├── mailgunner
├── nginx
│ ├── files
│ │ ├── local
│ │ │ ├── mysite.com
│ │ │ └── mail.mysite.com
│ │ └── production
│ │ ├── mysite.com
│ │ └── mail.mysite.com
│ └── manifests
│ └── server.pp
├── tools
│ ├── files
│ │ ├── local
│ │ │ ├── backup.sh
│ │ │ ├── ghostsitemap.sh
│ │ │ └── init-mysite.sh
│ │ └── production
│ │ ├── backup.sh
│ │ ├── ghostsitemap.sh
│ │ └── init-mysite.sh
│ └── manifests
│ └── install.pp
└── webhooks
├── files
│ ├── local
│ │ └── init-webhook.sh
│ ├── production
│ │ └── init-webhook.sh
│ ├── webhook.sh
│ └── webhooks.rb
└── manifests
└── install.pp
hiera.yaml:
---
:backends:
- yaml
:yaml:
:datadir: /vagrant/hieradata
:hierarchy:
- "%{::environment}/site
- common
通用.yaml
--
classes:
- site
本地/站点.yaml
--
:site:
environment: local
name: local.mysite
mailserver: local.mail.mysite
博客/清单/应用程序.pp
class blog::app {
class { 'nodejs':
version => 'v0.10.25',
} ->
package { 'pm2':
ensure => present,
provider => 'npm',
require => Class['nodejs'],
}
}
Puppet文件
forge 'https://forgeapi.puppetlabs.com'
mod 'willdurand/nodejs', '1.9.4'
基本上,我的问题是我的 puppet 安装没有重新安装 nodejs(我之前使用 删除了它rm -rf puppet/modules/nodejs
)
有谁知道为什么 puppet 现在拒绝在 puppet/modules 目录中安装 nodejs puppet 模块?
仅供参考-我已经使用以下方法安装了 willdurand/nodejs 模块puppet module install willdurand/nodejs
非常感谢您的帮助 - 我已经为此绞尽脑汁好几天了!
答案1
我决定将其移至 StackOverflow,因为我认为那里更合适。
https://stackoverflow.com/questions/36832917/node-js-module-wont-reinstall-using-puppet-vagrant
请随意关闭这个问题。