この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 8686|答える: 0

構成管理:パペットのインストールと使用(1)

[リンクをコピー]
掲載地 2014/10/20 9:47:45 | | |
1. パペット入門

システム管理者はしばしば、パッケージのアップグレード、設定ファイルの管理、システムサービス、クローンタスク、新しい設定の追加、バグの修正など、繰り返しの多い作業に縛られています。 これらの作業はしばしば繰り返しで非効率的であり、解決の最初の対応は自動化することで、カスタムスクリプトが現れます。 環境の複雑さから、カスタムスクリプトやアプリケーションは繰り返し開発され、複数のプラットフォームに適合させるのが難しく、柔軟性や機能性の保証も難しいため、Puppetのような自動構成管理ツールが登場しています。

オープンソースの世界では、多くの設定ツールから選べるものがあり、この分野の主要な製品には以下のようなものがあります。

    Puppet(http://puppet.reductivelabs.com/):Rubyで書かれた構成管理ツールで、C/Sアーキテクチャを用いて宣言文でクライアントを設定します。
    Cfengine(http://www.cfengine.org):1993年にリリースされた最初期のオープンソース設定ツールの一つで、教育機関で通常使われるC/Sアーキテクチャでもあります。
    LCFG(http://www.lcfg.org/):構成を定義するためにXMLを使用するC/Sアーキテクチャ向けの構成管理ツールです。
    Bcfg2:Pythonで書かれたC/Sアーキテクチャ向けの構成管理ツールで、仕様とクライアント応答を使ってターゲットホストを設定します。

このドキュメントは、Puppetを使ってホスト、アプリケーション、バックグラウンドプログラム、さまざまなサービスを管理する方法を説明することに専念しています。

Puppetについて:

1. パペットは何に使われているのか?

Puppetは、C/S展開アーキテクチャに依存しているオープンソースのRubyベースのシステム構成管理ツールです。 主な開発者はLuke Kaniesで、GPLv2著作権ライセンスに従っています。 1997年以降、KaniesはUNIXシステム管理に携わっており、Puppetの開発はこの経験から生まれました。 利用可能な構成ツールに満足できず、カニーズは2001年から2005年にかけてReductiveラボでツールの開発を開始しました。 まもなくReductive Labsは旗艦製品「Puppet」をリリースしました。

2. パップットの特徴

多くのシステム構成管理ツールは、cfengineのように非常に似た動作をします。 Puppetのユニークな点は何ですか?

Puppetの構文では、ターゲットホストすべてにユーザーを構築するための別スクリプトを作成できます。 すべてのターゲットホストは、ローカルシステムに適用される構文を使ってモジュールを順番に解釈し実行します。 例えば、この設定がRed Hatサーバー上で実行されている場合、useraddコマンドを使ってユーザーを作成します。 この構成がFreeBSDホスト上で実行された場合、adduserコマンドが使用されます。

Puppetのもう一つの注目すべき点は、その柔軟性です。 オープンソースソフトウェアの性質上、Puppetのソースコードを自由に入手でき、問題が発生して対応可能であれば、環境に合わせてPuppetのコードを修正・強化することができます。 さらに、コミュニティ開発者や寄付者は引き続きPuppetの機能を強化しています。 また、多くの開発者やユーザーコミュニティがPuppetのドキュメントや技術サポートの提供にも取り組んでいます。

パペットもスケールしやすいです。 カスタムパッケージのサポートや特別なシステム環境設定をPuppetインストーラーに迅速かつ簡単に追加できます。

3. パペットの作業モード

PuppetはC/Sアーキテクチャ構成管理ツールで、puppetサーバーパッケージ(Puppetマスターとして知られる)を中央サーバーにインストールします。 管理が必要なターゲットホストにPuppetクライアントソフトウェア(Puppetクライアントと呼ばれる)をインストールします。 クライアントがパペットマスターに接続すると、パペットマスターで定義された設定ファイルがコンパイルされ、クライアント上で実行されます。 デフォルトでは、各クライアントは30分ごとにサーバーと通信し、設定情報の更新を確認します。 新しい設定情報や変更情報がある場合、その構成は再コンパイルされ、各クライアントに公開されて実行されます。 また、サーバー上で設定情報の更新を積極的にトリガーして、各クライアントに設定を強制することもできます。 クライアントの設定情報が変更された場合、サーバーから元の設定を取得して修正できます。

構成管理:パペットのインストールと使用(1)


4. パペットの未来

最後に、Puppetはまだ開発中の若いツールです。 Puppetコミュニティは急速に成長しており、多くの新しいアイデアが絶えず取り入れられ、開発やアップデート、モジュールの発表が毎日行われています。

2. 設定とインストール(Puppet 2.6.4 CentOS 5.4 インストール):

パペットサーバーとクライアント上でリポジトリを設定します:
回転数 -うっ http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
[root@puppetmaster ~]# vi /etc/yum.repos.d/epel.repo
追加:
[エペルパペット]
名前=エペルパペット
baseurl=http://tmz.fedorapeople.org/repo/puppet/epel/5/$basearch/
有効=0
GPGチェック=0

リポジトリ puppet.repo を追加:
[root@puppetmaster ~]# vi /etc/yum.repos.d/puppet.repo
[パペットの音]
name=Puppet Labs パッケージ
baseurl=http://yum.puppetlabs.com/base/
有効=0
GPGチェック=0

パペットマスターの設置:
[root@puppetmaster ~]# yum --enablerepo=epel,epel-puppet install puppet-server

ホストを修正し、以下の2つのレコードを追加します:
[root@puppetmaster ~]# vi /etc/ホスト
192.168.0.10 puppetmaster.leju.com パペット
192.168.0.100 puppetclient.leju.com

Puppetの設定:
[root@puppetmaster ~]# CD /etc/パペット/
[root@puppetmaster人形]# vi puppet.conf

[メイン]
    # パペットのログディレクトリ。
    # デフォルト値は「$vardir/ログ」です。
    logdir = /var/log/puppet

    # パペットのPIDファイルが保管されている場所。
    # デフォルト値は「$vardir/run」です。
    rundir = /var/run/puppet

    # SSL証明書が保管されている場所。
    # デフォルト値は「$confdir/ssl」です。
    ssldir = $vardir/ssl

[エージェント]
    # パペットがクラスのリストを保存しているファイル
    #回収された構成に関連しています。  読み込める
    # 「--loadclasses」を用いた別個の「puppet」実行ファイル
    # オプション。
    # デフォルト値は「$confdir/classes.txt」です。
    classfile = $vardir/classes.txt

    # puppetdがローカル設定をキャッシュする場所。  あ
    #拡張子はキャッシュ形式が自動的に追加されることを示します。
    # デフォルト値は '$confdir/localconfig' です。
    localconfig = $vardir/localconfig
    サーバー = 1 puppetmaster.leju.com
    報告 = 真
    リスン=真

[師匠]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
    オートサイン = 真
    レポート=ストア
   
[root@puppetmaster人形]# vi fileserver.conf
     [ファイル]
    パス /etc/puppet/files
    許可*

[モジュール]
    許可*

[プラグイン]
    許可*

[root@puppetmasterパペット]# mkdir /etc/puppet/files
   
[root@puppetmaster人形]# CDマニフェスト/
create site.ppはパペットエントリーの設定ファイルです:
[root@puppetmasterマニフェスト]# vi site.pp
インポート "modules.pp"
インポート「roles.pp」
インポート "nodes.pp"

# 標準型の一般設定
Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" }

Filebucket { main: server => "puppetmaster.leju.com" }
ファイル { backup => main }

modules.ppを作成してモジュールをインポートする:
[root@puppetmaster manifests]# vi modules.pp
インポート「テスト」

サーバーロールを定義するためにroles.ppを作成してください:
[root@puppetmaster現れる]# vi roles.pp
クラス基底クラス {
        インクルークテスト
}

nodes.ppを作成してサーバーノードを設定してください:
[root@puppetmaster manifests]# vi nodes.pp
ノード「ベースノード」{
        ベースクラスを含める
}

ノード 'puppetclient.leju.com' は basenode { を継承します
        TAG(「テスト」)
}

ノード 'puppetmaster.leju.com' は basenode { を継承します
        TAG(「テスト」)
}

[root@puppetmasterが現れる]# CD ..
[root@puppetmaster人形]# MKDIRモジュール
テストモジュールを作成する:
[root@puppetmasterモジュール]# mkdir -p テスト/マニフェスト/
[root@puppetmasterモジュール]# mkdir test/files/
[root@puppetmasterモジュール]# CDテスト/ファイル/
[root@puppetmasterファイル]# vi test.txt
テストライン!
[root@puppetmasterファイル]# CD .. /マニフェスト/
クライアントにファイルを届けるテストクラスを作成する:
[root@puppetmaster現れる]# vi init.pp
クラステスト {
        ファイル { "/tmp/test.txt":
                Ensure => 現在、
                群 =>「根」、
                owner =>「ルート」、
                mode => "0644"、
                出典 => 「puppet:///test/test.txt」
        }
}

パペットマスターのローンチ:
[root@puppetmaster manifests]# /etc/init.d/puppetmaster start
ポート8140が稼働しているか確認してください。

パペットクライアントのインストール:
[root@puppetclient ~]# yum --enablerepo="epel, epel-puppet" パペットをインストールする

ホストを修正し、以下の2つのレコードを追加します:
[root@puppetclient ~]# vi /etc/ホスト
192.168.0.10 puppetmaster.leju.com パペット
192.168.0.100 puppetclient.leju.com

パペットの設定:
[root@puppetclient ~]# CD /etc/パペット/
[root@puppetclient人形]# vi puppet.conf
[メイン]
    # パペットのログディレクトリ。
    # デフォルト値は「$vardir/ログ」です。
    logdir = /var/log/puppet

    # パペットのPIDファイルが保管されている場所。
    # デフォルト値は「$vardir/run」です。
    rundir = /var/run/puppet

    # SSL証明書が保管されている場所。
    # デフォルト値は「$confdir/ssl」です。
    ssldir = $vardir/ssl

[エージェント]
    # パペットがクラスのリストを保存しているファイル
    #回収された構成に関連しています。  読み込める
    # 「--loadclasses」を用いた別個の「puppet」実行ファイル
    # オプション。
    # デフォルト値は「$confdir/classes.txt」です。
    classfile = $vardir/classes.txt

    # puppetdがローカル設定をキャッシュする場所。  あ
    #拡張子はキャッシュ形式が自動的に追加されることを示します。
    # デフォルト値は '$confdir/localconfig' です。
    localconfig = $vardir/localconfig

    サーバー = 1 puppetmaster.leju.com
    報告 = 真
    リスン=真
   
[root@puppetclient人形]# vi namespaceauth.conf
[パペットランナー]
    許可 puppetmaster.leju.com
    許可 *.leju.com
   
[root@puppetclient人形]# vi auth.conf
最後の行にallow *を加えます
......
経路 /
誰でも認証
許可*

[root@puppetclientパペット]# CD
パペットの実行:
[root@puppetclient ~]# パペット --noop --テスト --トレース --デバッグ
Puppet Masterが自動署名=trueを設定しない場合は、Puppet Masterで実行する必要があります:
[root@puppetmaster ~]# パペット認定 -l
puppetclient.leju.com
[root@puppetmaster ~]# パペット認定 -s puppetclient.leju.com
こうやって署名 puppetclient.leju.com。 その後、クライアントに戻ってここで実行します:
[root@puppetclient ~]# パペット --noop --テスト --トレース --デバッグ
join --noop では、この設定はクライアント側には実際には適用されず、主にテスト用で、印刷物にエラーがないか確認し、エラーなしで実行されます。
[root@puppetclient ~]# パペット --テスト --トレース --デバッグ

文書をご覧ください:
[root@puppetclient ~]# ll /tmp/
合計8人
-rw-r--r-- 1 語根 2025年2月11日 22:35 test.txt
文書は発行されました。

パペットマスターを押すことも可能です:
[root@puppetmaster ~]# パペットキック -d --ホスト puppetclient.leju.com
トリガー puppetclient.leju.com
地位獲得
ステータスは成功です
puppetclient.leju.com 終了時は出口コード0でした
終わり
0を返すと、クライアントのパペットが正常にトリガーされたことを示します。

パペットを自動起動に設定してください:
chkconfig --level 2345 puppet on

パペットマスターをパッセンジャーに改造する
Passengerは、Apache上でRailsやRackアプリケーションを実行するためのApache 2.xの拡張です。 puppetmasterはデフォルトでWEBrickを使ってファイルサービスを提供しています。多数のpuppetクライアントがある場合、puppetmasterのファイルサービスのパフォーマンスは低くなります。そのため、puppetmasterをより堅牢にするためにApacheを使ってファイルサービスを提供しましょう。

設置:
[root@puppetmaster ~]# yum install httpd httpd-devel Ruby-devel rubygems
Passenger 2.2.2 RHEL5は問題なく動作しています。
Forman.repo リポジトリを追加:
[root@puppetmaster ~]# vi /etc/yum.repos.d/foreman.repo
[現場監督]
name=Foreman 厩舎リポジトリ
baseurl=http://yum.theforeman.org/stable
GPGチェック=0
enabled=1
[root@puppetmaster ~]# うん、ルビージェム-パッセンジャー-2.2.2-1をインストール
[root@puppetmaster ~]# ルビージェムラック-1.0.1-1
[root@puppetmaster ~]# 乗客-インストール-apache2-module

Apache SSLモジュールのインストール:
[root@puppetmaster ~]# うまい、インストールしてmod_ssl

Puppetラックアプリケーションの設定:
MKDIR -P /etc/パペット/ラック/パペットマスタード/
MKDIR /etc/puppet/rack/puppetmasterd/public /etc/puppet/rack/puppetmasterd/tmp
cp /usr/share/puppet/ext/rack/files/apache2.conf /etc/httpd/conf.d/puppetmasterd.conf
CP /usr/share/puppet/ext/rack/files/config.ru /etc/puppet/rack/puppetmasterd/
chown puppet /etc/puppet/rack/puppetmasterd/config.ru

[root@puppetmaster ~]# vi /etc/httpd/conf.d/passenger.conf
ロードモジュール passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.2/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.2
パッセンジャールビー /usr/bin/ruby
パッセンジャー最大プールサイズ30
パッセンジャープールアイドルタイム 1500
パッセンジャーマックスリクエスト 1000
パッセンジャー スタットスロットル 120
ラックオートディテクトオフ
レールズオートディテクトオフ

[root@puppetmaster ~]# vi /etc/httpd/conf.d/puppetmasterd.conf
# この設定を調整したほうがいいでしょう
パッセンジャーハイパフォーマンスより
パッセンジャーマックスプールサイズ12
パッセンジャープールアイドルタイム 1500
# パッセンジャーマックスリクエスト 1000
パッセンジャー スタットスロットル 120
ラックオートディテクトオフ
レールズオートディテクトオフ

8140を聴く

<VirtualHost *:8140>
        SSLEngine on
        SSLProtocol -ALL +SSLv3 +TLSv1
        SSLCipherSuite ALL:! ADH:RC4+RSA+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP

        SSLCertificateFile /var/lib/puppet/ssl/certs/puppetmaster.leju.com.pem
        SSLCertificateKeyFile /var/lib/puppet/ssl/private_keys/puppetmaster.leju.com.pem
        SSLCertificateChainFile /var/lib/puppet/ssl/ca/ca_crt.pem
        SSLCACertificateFile /var/lib/puppet/ssl/ca/ca_crt.pem
        # もしApacheがCRLの無効な署名について苦情を言ったら、無効化を試してみてはどうでしょうか
        # CRLは次の行にコメントで確認していますが、これは推奨されません。
        SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
        SSLVerifyClient オプション
        SSLVerifyDepth 1
        SSLOptions +StdEnvVars

        # 以下のクライアントヘッダーは、同じ構成をPoundで動作させることを可能にします。
        RequestHeader set X-SSL-Subject %{SSL_CLIENT_S_DN}e
        RequestHeader set X-Client-DN %{SSL_CLIENT_S_DN}e
        RequestHeader set X-Client-Verify %{SSL_CLIENT_VERIFY}e

        DocumentRoot /etc/puppet/rack/puppetmasterd/public/
        RackBaseURI /
        <Directory /etc/puppet/rack/puppetmasterd/>
                オプションなし
                AllowOverride なし
                命令は許可、却下
                すべての人から許可
        </Directory>
</VirtualHost>

パペットマスターの設定ファイルを修正して、次の2行を追加してください:
[root@puppetmaster ~]# vi /etc/puppet/puppet.conf
[師匠]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
   
/etc/sysconfig/puppetmasterを修正してください:
[root@puppetmaster ~]# vi /etc/sysconfig/puppetmaster
# 最後に次の一行を加える:
PUPPETMASTER_EXTRA_OPTS="--レポートストア"
もし現場監督とpuppet-dashboardの両方に報告する必要がある場合は、次の行を追加してください:
PUPPETMASTER_EXTRA_OPTS="--報告店、現場監督、puppet_dashboard"

パペットマスターのサービスを停止し、アパッチのサービスを開始する:
[root@puppetmaster ~]# /etc/init.d/puppetmaster stop
[root@puppetmaster ~]# /etc/init.d/httpd start

Bootはpuppetmasterサービスを起動せず、httpdサービスを起動します:
[root@puppetmaster ~]# chkconfig --レベル2345 パペットマスターオフ
[root@puppetmaster ~]# chkconfig --level 2345 httpd on

ポート8140が有効になっていることを確認してください:
[root@puppetmaster ~]# netstat -tunlp |grep 8140
TCP 0 0 :::8140 :::* 9834/HTTPD を聞いてください

クライアント側でエラーログが印刷されているかテストしてください:
[root@puppetclient ~]# パペット --テスト --トレース --デバッグ




先の:php-fpm.conf 重要なパラメータを詳細に説明します
次に:2014年10月25日(土)午後16時に、防空および災害予防警報が試験されました
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com