2016-04-25 9 views
1

これまでと同様の設定でしたが、私は人形ビルドにhieraを追加するとすぐに問題が発生しました。Node.jsモジュールは人形/迷彩を使用して再インストールされません

==> 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. 

私の放浪設定は次のとおりです:次のように私は、現在vagrant provisionを実行した後に持ってエラーがある

# -*- 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 

私のソースツリーがそうのように見えます(その多くは、フォルダ構造は別に関係ありません

├── 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:

カスタムブログモジュールとhieraの設定)について

common.yaml

-- 
classes: 
    - site 

site.yaml /ローカル

-- 
:site: 
    environment: local 
    name: local.mysite 
    mailserver: local.mail.mysite 

ブログ/マニフェスト/ app.pp

class blog::app { 

    class { 'nodejs': 
    version => 'v0.10.25', 
    } -> 
    package { 'pm2': 
    ensure => present, 
    provider => 'npm', 
    require => Class['nodejs'], 
    } 
} 

Puppetfile

forge 'https://forgeapi.puppetlabs.com' 

mod 'willdurand/nodejs', '1.9.4' 
基本的に、私の問題は私の人形のインストールがnodejsを再インストールされていないことです

(私はrm -rf puppet/modules/nodejsを使用して、以前にそれを取り除くのだ)

誰もが任意のアイデアを持っていますかまたは、なぜ人形は今でnodejs人形モジュールをインストールすることを拒否されます人形/モジュールディレクトリ?

FYI - 私は今、数日間、この上のレンガの壁に頭を叩いてきた - 私はpuppet module install willdurand/nodejs

はるかに高く評価されているすべてのヘルプを使用してwilldurand/nodejsモジュールをインストールしました!

+0

をインストールしてください、あなたがプラグインを参照していけない場合はプラグインが

$ vagrant plugin list vagrant-librarian-puppet (0.9.2) .... 

にインストールされていることを確認してくださいあなたは司書を使用しているようですので、あなたがプラグインを持って確認することができます汚い人 - 図書館 - 人形 ' がインストールされています –

+0

こんにちはフレデリック - あなたはそれを拡張できますか? –

+0

私は非常に初めて人形を操るユーザーです。私はJohn ArundelのPuppet 3の本の紹介から作業してきましたが、多くの作業は、Webや他のGitHubの例のスケッチの例から導き出されています。したがって、私はワイヤを交差させることができました。 –

答えて

1

Puppetfileは、あなたの人形モジュールをインストールするために、人工物 - 司書 - 人形劇人によって使用されます。 `

それを

$ vagrant plugin install vagrant-librarian-puppet 
+0

私はそれをしたと信じていますが、私が帰ってきたら私は二重チェックします。興味のない人は、人形モジュールを手動でインストールする必要があります。 'puppet module install willdurand/nodejs'?それとも迷惑な人形図書館員が私のためにそれをしますか? –

+0

ライブラリアンとのアイデアはあなたのために必要なすべてのモジュールを設定し、プロビジョニングが完了する前にインストールパペットモジュールを実行します。さらに個人的には、チームメンバーのワークステーション上の別のプラグインには依存しないので、インストールパペットモジュールを実行するシェルスクリプトが好きですが、味覚や使い方については、 –

+0

私の問題を考えると、ライブラリを手動でインストールしていて、それが存在していると考えてインストールできません。私はそれをアンインストールし、確認するために不規則な準備の手順を再実行しようとします - ありがとう –

関連する問題