foremianアーキテクチャの導入6-pppetmaterを統合する
ゼロ基礎学習Pppet自動化配置管理シリーズ文書
注:下記の内容はforemann 1.6.3+pppett 2.6.2の環境下で操作します.詳細は公式サイトを参照してください.http://theforeman.org/manuals/1.6/index.html
foremianとpppetmasterをインストールしてから、これからすることは統合して、現在foremannはpppetの環境、種類、クラス内の変数、報告、facterなどの情報を管理できます.これから一つ一つ紹介します.
1、まずスマートエージェントがpppetとpppet CAを代理したことを保証します.
Foremanインストール
プロキシpppet及びpppetCAは、foremann-proxyで開く必要があります.
2.1、pppetmater環境を配置する
pppetは2.6バージョンから「カタログ環境」の機能を追加しました.詳細は公式サイトを訪問してください.https://docs.puppetlabs.com/puppet/latest/reference/environments.html
2.2、foremannにpppet環境を導入する
Foremanインストール
3、管理pppet類
3.1、pppet類の配置
以下の点に注意してください. pppetc.com nfにおけるbasemodulepathの値が設定されている経路は、環境ディレクトリ下の全ての環境の公共環境であり、中のすべてのモジュールは他の環境によって検索される(environment.comが配置されていない前提で) .環境ディレクトリの各環境ディレクトリには、デフォルトでは、maifeestsディレクトリとmodulesディレクトリが含まれています.ディレクトリ構造は以下の通りです. もしあなたが一つの環境に複数のディレクトリを含めたいなら、各ディレクトリにモジュールが含まれています.environment.co nfファイル を追加するべきです.
注意:検索パスを追加するには、
3.2、Foremanにpppet類を導入する
Foremanインストール
4、ENCの設定
4.1、ノードによる直接管理モジュール
Foremanインストール
備考:メインクラスを追加すればいいです.
このようにノードとモジュールは関連しています.site.ppに下記のコードを追加するのに相当します.
node pppetmaster 162.kispupet.com{ include ssh)
4.2、グループ経由モジュール
Foremanインストール
Foremanインストール
備考:グループ管理モジュールを使用すると、あるノードのためにモジュールを単独でチェックすることを勧めません.そうでないと、先にノードにモジュールAを追加してから、ノードに対応するグループにモジュールAを追加したら、ノードのpppet類はどこに含まれるクラスが二つの同名のモジュールが表示されますか?
5、グループとモジュール間の管理
5.1、プロファイルグループの追加
注:foremanは1.5バージョンから「設定グループ」機能を追加しました.複数のモジュールを「設定グループ」に追加して、設定グループに名前を付けることができます.このように、ホストグループはモジュールをチェックする時、設定グループにチェックを付けるだけで、中のすべてのモジュールを統合できます.
ForemanインストールForemanインストール
6、設定が成功したかどうかを確認する
Foremanインストール
Foremanインストール
注:下記の内容はforemann 1.6.3+pppett 2.6.2の環境下で操作します.詳細は公式サイトを参照してください.http://theforeman.org/manuals/1.6/index.html
foremianとpppetmasterをインストールしてから、これからすることは統合して、現在foremannはpppetの環境、種類、クラス内の変数、報告、facterなどの情報を管理できます.これから一つ一つ紹介します.
1、まずスマートエージェントがpppetとpppet CAを代理したことを保証します.
Foremanインストール
プロキシpppet及びpppetCAは、foremann-proxyで開く必要があります.
# puppet
[root@puppetmaster162 ~]# cat /etc/foreman-proxy/settings.d/puppet.yml
---
# Puppet management
:enabled: true #
:puppet_conf: /etc/puppet/puppet.conf
# valid providers:
# puppetrun (for puppetrun/kick, deprecated in Puppet 3)
# mcollective (uses mco puppet)
# puppetssh (run puppet over ssh)
# salt (uses salt puppet.run)
# customrun (calls a custom command with args)
:puppet_provider: mcollective
# customrun command details
# Set :customrun_cmd to the full path of the script you want to run, instead of /bin/false
:customrun_cmd: /bin/false
# Set :customrun_args to any args you want to pass to your custom script. The hostname of the
# system to run against will be appended after the custom commands.
:customrun_args: -ay -f -s
# whether to use sudo before the ssh command
:puppetssh_sudo: false
# the command which will be sent to the host
:puppetssh_command: /usr/bin/puppet agent --onetime --no-usecacheonfailure
# With which user should the proxy connect
#:puppetssh_user: root
#:puppetssh_keyfile: /etc/foreman-proxy/id_rsa
# Which user to invoke sudo as to run puppet commands
:puppet_user: root
# URL of the puppet master itself for API requests
:puppet_url: https://puppetmaster162.kisspuppet.com:8140
# SSL certificates used to access the puppet master API
:puppet_ssl_ca: /var/lib/puppet/ssl/certs/ca.pem
:puppet_ssl_cert: /var/lib/puppet/ssl/certs/puppetmaster162.kisspuppet.com.pem
:puppet_ssl_key: /var/lib/puppet/ssl/private_keys/puppetmaster162.kisspuppet.com.pem
# Override use of Puppet's API to list environments, by default it will use only if
# environmentpath is given in puppet.conf, else will look for environments in puppet.conf
#:puppet_use_environment_api: true
# puppet ca
[root@puppetmaster162 ~]# cat /etc/foreman-proxy/settings.d/puppetca.yml
---
# PuppetCA management
:enabled: true
:ssldir: /var/lib/puppet/ssl
:puppetdir: /etc/puppet
2、pppet環境を管理する2.1、pppetmater環境を配置する
pppetは2.6バージョンから「カタログ環境」の機能を追加しました.詳細は公式サイトを訪問してください.https://docs.puppetlabs.com/puppet/latest/reference/environments.html
[root@puppetmaster162 ~]# cat /etc/puppet/puppet.conf
[master]
...
environmentpath = /etc/puppet/environments
basemodulepath = /etc/puppet/modules:/usr/share/puppet/modules
environment_timeout = 2 #
[root@puppetmaster162 ~]# ll /etc/puppet/environments/
total 24
drwxr-xr-x 4 root root 4096 Dec 5 16:46 development
drwxr-xr-x 4 root root 4096 Dec 5 16:46 example42
drwxr-xr-x 4 root root 4096 Dec 5 16:39 example_env
drwxr-xr-x 5 root root 4096 Dec 5 17:03 production
drwxr-xr-x 4 root root 4096 Dec 5 16:46 puppetlabs
drwxr-xr-x 7 root root 4096 Dec 5 17:03 temp
注意:以上の構成から、二つの環境が設定されていることが分かります.2.2、foremannにpppet環境を導入する
Foremanインストール
3、管理pppet類
3.1、pppet類の配置
以下の点に注意してください.
[root@puppetmaster162 environments]# tree production/
production/
├── environment.conf
├── manifests
│ └── site.pp
├── modules
│ ├── jenkins
│ │ ├── files
│ │ │ └── jenkins.repo
│ │ ├── manifests
│ │ │ ├── init.pp
│ │ │ ├── install.pp
│ │ │ ├── service.pp
│ │ │ └── yum.pp
│ │ ├── README
│ │ └── templates
│ └── motd
│ ├── files
│ │ └── motd
│ ├── manifests
│ │ └── init.pp
│ └── templates
└── system
└── ssh
├── files
├── manifests
│ ├── backup.pp
│ ├── config.pp
│ ├── init.pp
│ ├── install.pp
│ └── service.pp
├── Modulefile
├── README
├── spec
│ └── spec_helper.rb
├── templates
│ └── sshd_config.erb
└── tests
└── init.pp
17 directories, 20 files
[root@puppetmaster162 environments]# ll temp/
total 24
-rw-r--r-- 1 root root 95 Dec 5 17:03 environment.conf #
drwxr-xr-x 11 root root 4096 Dec 5 17:02 juhailu
drwxr-xr-x 2 root root 4096 Dec 5 16:48 kisspuppet
drwxr-xr-x 4 root root 4096 Dec 5 16:56 lin
drwxr-xr-x 2 root root 4096 Dec 5 16:48 manifests
drwxr-xr-x 5 root root 4096 Dec 5 16:47 puppetlabs
[root@puppetmaster162 environments]# ll temp/puppetlabs/
total 12
drwxr-xr-x 5 root root 4096 Dec 5 16:46 propuppet-demoapp
drwxr-xr-x 5 root root 4096 Dec 5 16:46 puppetlabs-demoapp
drwxr-xr-x 4 root root 4096 Dec 5 16:46 puppet-module-skeleton
[root@puppetmaster162 environments]# cat temp/environment.conf #
modulepath = $basemodulepath:puppetlabs:modules:lin:modules:juhailu:modules:kisspuppet:modules
注意:検索パスを追加するには、
$basemodulepath
を追加する必要があります.そうでないと、デフォルトの公共環境経路は検索されません.3.2、Foremanにpppet類を導入する
Foremanインストール
4、ENCの設定
4.1、ノードによる直接管理モジュール
Foremanインストール
備考:メインクラスを追加すればいいです.
このようにノードとモジュールは関連しています.site.ppに下記のコードを追加するのに相当します.
node pppetmaster 162.kispupet.com{ include ssh)
4.2、グループ経由モジュール
Foremanインストール
Foremanインストール
備考:グループ管理モジュールを使用すると、あるノードのためにモジュールを単独でチェックすることを勧めません.そうでないと、先にノードにモジュールAを追加してから、ノードに対応するグループにモジュールAを追加したら、ノードのpppet類はどこに含まれるクラスが二つの同名のモジュールが表示されますか?
5、グループとモジュール間の管理
5.1、プロファイルグループの追加
注:foremanは1.5バージョンから「設定グループ」機能を追加しました.複数のモジュールを「設定グループ」に追加して、設定グループに名前を付けることができます.このように、ホストグループはモジュールをチェックする時、設定グループにチェックを付けるだけで、中のすべてのモジュールを統合できます.
ForemanインストールForemanインストール
6、設定が成功したかどうかを確認する
Foremanインストール
Foremanインストール
# , node.rb, "puppet agent" "node.rb " 。
[root@puppetmaster162 ~]# cat /var/lib/puppet/yaml/foreman/puppetmaster162.kisspuppet.com.yaml
---
classes:
ssh:
parameters:
puppetmaster: puppetmaster162.kisspuppet.com
hostgroup: prd
root_pw:
foreman_env: production
owner_name: Admin User
owner_email: [email protected]
以上の情報を設定すれば、ENCの機能が完了し、基本的にノードとクラス間のチェックが保障されます.ノードでpppet agentコマンドでテストができます.どのようにforemanでプッシュするかについては、次の文章に注目してください.