7

私の目標は、1 つまたは 2 つのノードと 1 つの puppetmaster を持つことです。bash スクリプトを使用して各ノードに puppetlabs リポジトリをプロビジョニングし、最新バージョンの puppet や puppetmaster をインストールしました。しかし、ノードで実行しようとするたびにpuppet agent --test、次のエラーが返されます。

root@vm:~# puppet agent --test
Error: Could not request certificate: Connection refused - connect(2)
Exiting; failed to retrieve certificate and waitforcert is disabled
  • puppetmaster サービスが稼働していることを確認しました。
  • マスターが起動するまでノードの電源を入れません。
  • 実行puppet cert listすると、puppetmaster で承認待ちの証明書が表示されません。
  • 私の /etc/hosts ファイルには、IP アドレスとホスト名が正しく構成されています。
  • /etc/puppet/puppet.conf は正しいようです。
  • マスターからノードに ping を実行できます。その逆も可能です。
  • iptables --listファイアウォール ルールは表示されません。

Vagrant/Virtualbox がポート 8140 を処理する方法を理解できないということですか? エラーには「接続が拒否されました」と表示されるので、ファイアウォールの問題だと思いました。しかし、ファイアウォールはありません...

それで、私はどこで台無しにしたのですか?

これが私のVagrantfileです:

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

  config.vm.define :puppetmaster do |puppetmaster|
    puppetmaster.vm.box = "ubuntu-server-12042-x64-vbox4210-nocm"
    puppetmaster.vm.box_url = "http://puppet-vagrant-boxes.puppetlabs.com/ubuntu-server-12042-x64-vbox4210-nocm.box"
    puppetmaster.vm.network :private_network, ip: "192.168.77.1"
    #puppetmaster.vm.network :forwarded_port, guest: 80, host: 20001
    #puppetmaster.vm.network :forwarded_port, guest: 443, host: 24431
    #puppetmaster.vm.network :forwarded_port, guest: 22, host: 20022
    puppetmaster.vm.hostname = "vm.puppetmaster.lab"
    puppetmaster.vm.provision :shell, :path => "master-bootstrap.sh"
    puppetmaster.vm.synced_folder "modules/", "/etc/puppet/modules"
    puppetmaster.vm.synced_folder "manifests/", "/etc/puppet/manifests"
  end

  config.vm.define :alpha do |alpha|
    alpha.vm.box = "ubuntu-server-12042-x64-vbox4210-nocm"
    alpha.vm.box_url = "http://puppet-vagrant-boxes.puppetlabs.com/ubuntu-server-12042-x64-vbox4210-nocm.box"
    alpha.vm.network :private_network, ip: "192.168.77.2"
    #alpha.vm.network :forwarded_port, guest: 22, host: 20023
    alpha.vm.hostname = "vm.alpha.lab"
    alpha.vm.provision :shell, :path => "alpha-bootstrap.sh"
  end


  config.vm.define :beta do |beta|
    beta.vm.box = "ubuntu-server-12042-x64-vbox4210-nocm"
    beta.vm.box_url = "http://puppet-vagrant-boxes.puppetlabs.com/ubuntu-server-12042-x64-vbox4210-nocm.box"
    beta.vm.network :private_network, ip: "192.168.77.3"
    #beta.vm.network :forwarded_port, guest: 22, host: 20024
    beta.vm.hostname = "vm.beta.lab"
    beta.vm.provision :shell, :path => "beta-bootstrap.sh"
  end
end

私のノードブートストラップbashスクリプト:

#!/usr/bin/env bash

wget http://apt.puppetlabs.com/puppetlabs-release-precise.deb
dpkg -i puppetlabs-release-precise.deb
apt-get update
#apt-get -y dist-upgrade
apt-get -y install puppet

echo '192.168.77.1 vm.puppetmaster.lab' >> /etc/hosts

echo '[agent]' >> /etc/puppet/puppet.conf
echo 'server=vm.puppetmaster.lab' >> /etc/puppet/puppet.conf
echo 'certname=vm.alpha.lab' >> /etc/puppet/puppet.conf

私のマスター ブートストラップ bash スクリプト:

#!/usr/bin/env bash

wget http://apt.puppetlabs.com/puppetlabs-release-precise.deb
dpkg -i puppetlabs-release-precise.deb
apt-get update
#apt-get -y dist-upgrade
apt-get -y install puppet
puppet apply /etc/puppet/manifests/default.pp

puppet/puppetmaster を構成/インストールするために、Pro Puppet の puppet モジュールをわずかに変更して使用していることに注意してください。そのためpuppet apply、マスター ブートストラップ スクリプトでコマンドを実行します。

編集 :public_networkを使用し、職場のdhcpサーバーにIPアドレスを割り当てさせると、2つのvmの通信を取得できます。もちろん、プライベートなローカル仮想ネットワークで 192.xxx アドレスだけを使用することはできないため、これは理想的ではありません。パペットを実行する前に、hosts ファイルを手動で構成する必要があります。しかし、少なくとも私は、問題が :private_network の使用に関係していることを知っています。

編集 2 puppetlabs/firewall モジュールを使用して、puppetmaster vm のファイアウォールで 8140 を強制的に開いてみました。これで、その VM で puppet エージェントを実行できました。しかし、アルファ VM を試してみると、同じ接続拒否エラーが発生しました。したがって、ファイアウォールがそれと関係があるとは思えません。

編集 3 プライベート ネットワーク オプションは、VM に 2 番目の NIC を設定します。最初の NIC は NAT され、2 番目の NIC は私が割り当てた静的 IP を取得します。

Puppet は両方の NIC でリッスンしています。(少なくとも私が知る限りでは。)

192.xxx の IP アドレスは、これらの VM に固有のものです。その範囲は他のどこにも使用されていません。

4

3 に答える 3

2

ホストでルックアップifconfigします。IP 192.168.77.1 は、VM を使用したプライベート ネットワーク用のホストのアドレスである可能性があります。puppetmaster VM の IP を変更し、破棄してから起動します。

于 2013-06-04T02:46:30.330 に答える
0

マスター サーバーに割り当てた IP が実際には既に使用されており、常に間違ったマシンに接続しようとしていたことに気付くまで、同じ問題がありました。しかし、あなたはおそらくすでにそれをチェックしましたよね?

于 2013-06-04T09:18:21.207 に答える