Puppetラーニングマニュアル:Puppetソースインストール


環境:
オペレーティングシステム:RedHat 5.3 64 bit
Puppetバージョン:2.7.9
Factorバージョン:1.6.8
1、Puppet及びFactorダウンロードアドレス
Puppet:https://downloads.puppetlabs.com/facter/
Facter: https://downloads.puppetlabs.com/puppet/
2、Puppet Serverのインストール
まずPuppetをインストールする前にrubyをインストールする必要があります.ここではyumを使用してインストールします.具体的には:
# yum install -y ruby ruby-libs  ruby-shadow

①、Factorインストール
# tar xzvf facter-1.6.8.tgz
# cd facter-1.6.8
# ruby install.rb

②、Puppet取付
# tar xzvf puppet-2.7.9.tgz
# cd puppet-2.7.9
# ruby install.rb

このようにPuppet Server側のインストールが完了すると、次は構成ドキュメントや起動スクリプトの設定になります.
  • プロファイルのインストールが完了すると、次のように、copyインストールパッケージの一部のプロファイルをPuppet構成ディレクトリ/etc/puppetにインストールする必要があります.具体的には、
    # cp conf/redhat/fileserver.conf /etc/puppet/
    # cp conf/redhat/puppet.conf /etc/puppet/puppet.conf.default
    fileserver.conf→Puppetファイルシステム構成puppet.conf→Puppetのデフォルト設定ドキュメントは、以下を参照してください.ただし、これはコピーしなくてもよいので、後で注意を生成するように命令されます.心配システムによってコピーされたプロファイルのディレクトリも異なります.オペレーティングシステムがredhat、ディレクトリがconf/redhat、オペレーティングシステムがsuseの場合、ディレクトリはconf/suseです.
  • 起動スクリプト
    # cp conf/redhat/server.init /etc/init.d/puppetmaster
    # chmod +x /etc/init.d/puppetmaster
    注意:デフォルトではpuppetの構成ドキュメント/etc/puppet/puppet.confはpidのストレージパスを/var/lib/puppet/runに設定し、起動スクリプトのパスは/var/run/puppetに設定します.ここでは両者を統一する必要があります.
  • Puppetユーザおよび対応するディレクトリ
    # puppet master --mkusers
    # ll /var/lib/puppet/
    total 48
    drwxr-x--- 2 puppet puppet 4096 Nov  1 17:34 bucket
    drwxr-x--- 2 puppet puppet 4096 Nov  7 14:11 clientbucket
    drwxr-x--- 2 puppet puppet 4096 Nov  7 14:11 client_data
    drwxr-x--- 2 puppet puppet 4096 Nov  7 14:11 client_yaml
    drwxr-xr-x 2 puppet puppet 4096 Nov  1 17:34 lib
    drwxr-x--- 2 puppet puppet 4096 Nov  8 14:06 log
    drwxr-x--- 3 puppet puppet 4096 Nov  4 17:28 reports
    drwxr-x--- 2 puppet puppet 4096 Nov  1 17:34 rrd
    drwxrwxrwt 2 puppet puppet 4096 Nov 12 11:42 run
    drwxr-x--- 2 puppet puppet 4096 Nov  1 17:34 server_data
    drwxr-xr-t 3 puppet puppet 4096 Nov  7 14:11 state
    drwxr-x--- 4 puppet puppet 4096 Nov  4 16:37 yaml
  • を作成する.
    作成されたディレクトリは主に/var/lib/puppetです.
  • Puppet Server構成ドキュメント
    # puppetmasterd --genconfig > /etc/puppet/puppet.conf
  • を生成
    以上、Puppet Server側のインストールを完了しましたが、残りはSSL認証です.
    3、Puppet Agentのインストール
    Agent側FactorおよびPuppetのインストールは、サーバ側と同じです.違いは、その後の起動スクリプトと構成ドキュメントが異なることです.関連する構成情報は次のとおりです.
  • 起動ファイル
    # cp -p conf/redhat/client.init /etc/init.d/puppet
    # chmod +x /etc/init.d/puppet
  • Puppet Agent構成文書
    # puppet agent --genconfig > /etc/puppet/puppet.conf
  • を生成する.
    4、SSL認証
    ①、DNS設定又はhost設定
    Puppet SSL認証はドメイン名でマークされており、ここではドメイン名を設定する必要があります.ここではテスト使用なので、今回は/etc/hostsでドメイン名のIP指向を直接設定し、本番環境で使用する場合はDNSで設定することをお勧めします.Puppet ServerおよびAgentのhosts設定は次のとおりです.
  • Puppet Server
    # cat /etc/hosts
    ・・・
    10.197.95.245  szmlvm29-76 szmlvm29-76.easou.com
    10.197.95.234  szmlvm29-77 szmlvm29-77.easou.com puppet
  • Puppet Agent
    # cat /etc/hosts
    ・・・
    120.197.95.234  szmlvm29-77.easou.com szmlvm29-77
    120.197.95.245  szmlvm29-76.easou.com szmlvm29-76

  • ②、Puppet Agent証明書申請
    # puppetd --server szmlvm29-76.easou.com --test
      
    # puppetd --server szmlvm29-76.easou.com --no-daemonize �Cverbose

    1つ目は証明書を申請するとき、成功するかどうかにかかわらず、1回だけ実行します.
    2つ目は証明書を申請する際、フロントエンドで詳細を実装し続け、デフォルトではdaemonとして実行されます.
    ③、Puppet Server証明書発行
    # puppetca  --sign szmlvm29-77.easou.com    puppet cert --sign szmlvm29-77.easou.com
         szmlvm29-77.easou.com   
    # puppetca  --sign --all    puppet cert --sign --all
             

    その他のPuppet Serverと証明書に関するコマンドは次のとおりです.
    # puppet cert --list  puppetca --list
            
    # puppet cert -revoke puppet  puppetca -revoke puppet
            
    # puppet cert --clean puppet  puppetca --clean puppet
          

    5、Puppet ServerとAgentの接続テスト
    ①、site.pp
    site.ppこのファイルは/etc/puppet/manifestsディレクトリの下にあり、Puppet Serverのすべてのエージェントに対する操作はこのプロファイルから入力されます.ここではテストのためにこのファイルを簡単に構成し、Agentに対してユーザーを作成します.具体的な情報は以下の通りです.
    $ cat site.pp
    node default {
            user { "test1" : ensure=>present,comment=>"  ",name=>test,shell=>"/bin/bash",home=>"/home/text",managehome=>true,password=>sha1('12345');}
    }

    以上のように、すべてのエージェントに対してtestユーザー名を作成し、shellを/bin/bash、ディレクトリを/home/test、パスワードを12345とします.
    ②、エージェント実行
    # /usr/sbin/puppetd --server szmlvm29-76.easou.com --test
    info: Caching catalog for szmlvm29-77.easou.com
    info: Applying configuration version '1384248986'
    notice: /Stage[main]//Node[default]/User[test1]/ensure: created
    notice: Finished catalog run in 0.16 seconds
    # cat /etc/passwd
    ・・・
    test:x:505:506:  :/home/text:/bin/bash
    # ll /home/
    ・・・
    drwx------  3 test   test     4096 Nov 18 14:41 text
    # cat /etc/shadow
    test:8cb2237d0679ca88db6464eac60da96345513964:16027:0:99999:7:::

    以上のようにPuppet Agentの実行結果は実行に成功しました.