Puppet DiscoveryをCentOS7にインストールしてGCEインスタンスを検出してみた
既存資産を正確に把握することがDevOpsの出発地点と言われていますがPuppet Discoveryは今までの資産管理と何が違うのでしょうか?
Puppet Discoveryとは?
Puppet DiscoveryはPuppet社が提供している資産管理ツールです。検知対象ノードへのエージェントのインストールは不要でOS標準のSSH/WinRMプロトコルでノードにインストールされたSoftware Packageの情報を取得します。手軽に開始できることが最大の売りです。
Puppet Discovery
前提条件
-
OS : CentOS 7(3.10.0-957.1.3.el7.x86_64)
-
Puppet Discovery : 1.8.0 Build: b2f5c3c
インストール
Puppet DiscoveryはDockerコンテナ上で稼働するApplicationです。インストールするにはDockerがインストールされている必要があります。この記事ではこちらの記事を参考にインストールしています。
Puppet社のライセンス管理サイトから30日間無償で利用可能な評価版ライセンスを入手します。アカウントの登録が必要です。
Puppet社のダウンロードサイトからバイナリをダウンロードして実行権限を付与します。
$ chmod a+x ./puppet-discovery
startで開始します。
$ ./puppet-discovery start
ライセンスファイルのパスを指定します。
Please enter the path to your Puppet Discovery license: /tmp/discovery_license.json
End User License Agreementを承諾します。
Do you agree? [y/n]:y
adminのパスワードを設定します。パスワードポリシーが少々厳しいので注意が必要です。
Password requirements:
* Password must have at least 6 characters
* Password must use at least 3 of the 4 character types: lowercase letters, uppercase letters, numbers, symbols
* Password cannot be the same as current password
Please create an admin password: *********
Verify by entering the same password again: *********
下記のメッセージが表示されればインストールと起動は成功です。
Puppet Discovery: started 11s [====================================================================] 100%
Puppet Discovery: pulled [9/9] 1m58s [====================================================================] 100%
Opening Puppet Discovery at https://localhost:8443 ...
Navigate to https://localhost:8443 to access Puppet Discovery dashboard
念の為コンテナの稼働状況を確認します。
$ docker ps --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
182e5908aba3 gcr.io/puppet-discovery/frontdoor:1.8.0 "nginx -g 'daemon of…" About a minute ago Up About a minute 0.0.0.0:8080->80/tcp, 0.0.0.0:8443->443/tcp pd_ingress
3f770b4f270a gcr.io/puppet-discovery/node-ui:1.8.0 "/usr/src/app/entryp…" About a minute ago Up About a minute pd_ui
c47e768b79f9 gcr.io/puppet-discovery/licensing-api:1.8.0 "/entrypoint.sh" About a minute ago Up About a minute 8443/tcp pd_licensing
50f9ba074ac5 gcr.io/puppet-discovery/pdp-go:1.8.0 "/app/entrypoint.sh" About a minute ago Up About a minute 8082-8084/tcp, 8087/tcp pd_gopdp
30c392dd9caa gcr.io/puppet-discovery/edge:1.8.0 "/edge-svc" About a minute ago Up About a minute 9997/tcp pd_edge
9bbe2c5cec08 gcr.io/puppet-discovery/pd-storage:1.8.0 "docker-entrypoint.s…" About a minute ago Up About a minute 5432/tcp pd_storage
3b6f9db9d56f gcr.io/puppet-discovery/controller:1.8.0 "/controller-svc" About a minute ago Up About a minute 9999/tcp pd_controller
64792ab0569b gcr.io/puppet-discovery/pdp-desktop:1.8.0 "/app/pdp-env /app/c…" About a minute ago Up About a minute 8083-8085/tcp pd_pdp
85bd617eae71 gcr.io/puppet-discovery/pdp-proxy:1.8.0 "/pdp-proxy-svc" About a minute ago Up About a minute 9200/tcp pd_export
01c334f522fe gcr.io/puppet-discovery/pd-dex:1.8.0 "/entrypoint.sh serv…" 3 minutes ago Up 3 minutes 0.0.0.0:5556->5556/tcp pd_dex
061fec8467cb vault:0.9.0 "docker-entrypoint.s…" 4 minutes ago Up 3 minutes 0.0.0.0:8200->8200/tcp pd_vault
検出
GCEのインスタンスを検出します。この記事ではOS ImageはCentOS7を利用していることとします。
事前にGCPのコンソールから検出対象のインスタンスが稼働しているプロジェクトのService Accountの情報をダウンロードしておきます。IAM & admin -> Service accountsを選択します。
Puppet Discoveryのコンソールにアクセスします。Chromeからhttps://<ホスト名>:8443にアクセスしてインストール時に設定したadminのパスワードを入力しサインインを押します。
ホスト認証情報を追加します。この記事ではSSH Private Keyを使用します。SSH秘密鍵ファイルを押し、GCEインスタンスに登録してある公開鍵のペアとなっている秘密鍵を選択し鍵の設定を押します。
3つのチェックボックス全て選択して秘密鍵のユーザ名とパスフレーズを入力し鍵の追加を押します。次の画面でダッシュボートを表示を押します。
検出を開始します。しばらくすると検出データがダッシュボードに表示されます。All set!
おわりに
この記事では例としてGCPインスタンスを検出していますが、Puppet DiscoveryはAWS, Azure, VMware, Open Stack等主要なクラウドプラットフォームのインスタンスを検出することが可能です。もちろんベアメタルも。
稼働しているSoftware Package資産をExcel台帳で管理されているお客様は多くいらっしゃると感じています。Excel管理は更新漏れ等で実際の環境内容は異なっていて台帳は意味をなしていないケースがほとんどではないでしょうか?
Puppet Discoveryを利用してクラウドネイティブな資産管理にシフトすることをおすすめします!
Author And Source
この問題について(Puppet DiscoveryをCentOS7にインストールしてGCEインスタンスを検出してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/hisashiyamaguchi/items/7eeb89c5895a8e4ccc2a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .