この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。
建築家
建築家
リスト
放送
茶屋
インテリジェントAI会話
.NETキャリア&テクニカルカレッジ
ちっちゃいなクズブログ
この版
利用者
Architect_Programmer_Code農業ネットワーク
»
建築家
›
プログラミング
›
その他の番組編成
›
構成管理:パペットのインストールと使用(1)
眺める:
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