Puppet基礎編3-Puppetインストール前期の準備
13005 ワード
ゼロ基礎学習Puppet自動化構成管理シリーズドキュメント
仕事をよくしようとすると,まずその器を利する.
原文住所:http://kisspuppet.com/2014/03/06/puppet_learning_base3/
Puppetをインストールする前に、ネットワークアドレス仕様、ホスト名、certname名、時間など、多くの予備作業が必要ですが、これらの準備ができているだけで、puppetをインストールした後に問題を発見して後悔することはありません.説明:次のドキュメントシステムは、本編のドキュメント仕様案で設計され、拡張され、準生産の基準に従って作成されます.
一、ネットワークアドレス規範
注意:192.168.100.*/24のゲートウェイは192.168.100.110すべてのサーバのDNS 1は192.168.100.110です.
1、ホスト名の設定
注:agent 2~agent 3同上
2、IPアドレスの設定
注:node 1~node 3同上
3、NetworkManagerサービスを閉じる
NetworkManagerサービスは、RHELグラフィックスインタフェース管理NICのサービスで、そのオープンがネットワークに影響を与えるため、RHEL 6はデフォルトでオンになっていますので、オフにすることをお勧めします.
注:node 1~node 3同上
4、ファイアウォールを閉じる
本実験は主にアーキテクチャ全体の機能をテストするためであり,ファイアウォールをテストする場合は別途解決してください.
注:node 1~node 3同上
5、selinuxを閉じる
注:node 1~node 3同上
6、設定key操作の便宜上、公開鍵秘密鍵を設定し、puppetmaster側で統一的に配置することができる
7、hostsファイルの設定
puppet通信の前提はagentとmasterがホスト名を互いに解析できることである.もちろん、DNSを設定することもできます.第4部でkermitアーキテクチャを構築するときにDNSサービスを構築します.今しばらくhostsファイルで解析を行います.まずpuppetmasterを設定した後、copyをすべてのノードに統一することができます.
注意:ネットワークを設定した後、Xshellのようなツールでログインすることができ、操作しやすい
二、ローカルディスクyumソースの構成
こちらはvmware仮想マシンの操作なので、ディスクは直接あるディレクトリにマウントできます.物理マシンであれば、ディスクのファイルをすべて指定したディレクトリにコピーし、beaeurlを指すことをお勧めします.
注:node 1~node 3同上
説明:RHEL 5のReportはServerディレクトリにあるので、Repoファイルを構成する際にパラメータ
1、NTPサーバーを配置してntpサーバーとローカルを設定して同期する.もちろん、ネットワークが外部サーバーと同期できる場合、ここではすべてのサーバーの時間が一致することを保証するだけである.なぜなら、puppetmasterとagentの間の時間の差は10分を超えてはならない(そうであるようだ)が、後期に構成されたmcollecitveサービス側とクライアント間の差は60秒ではないからである.
2、ノードテストとcrontabの設定
四、地元yum倉庫を作る
本実験の大部分のパッケージはhttp://yum.puppetlabs.com、一部のパッケージはEPELやGems公式サイト、rabbitmq公式などから、yum倉庫の作り方についてhttp://kisspuppet.com/2014/01/26/puppet_create_repo/、ここで簡単に操作します
注意:RHEL 5のrepodataはRHEL 5環境でcreaterpoコマンド生成を実行する必要があります
五、FTPサーバーの配置
1、FTPサーバーのインストールと配置
FTPサーバを構築する目的はyum倉庫をカスタマイズするための準備である限り
2、FTP共有ディレクトリにyum倉庫を作る
生成したyumソースcopyをFTP共有ディレクトリに
六、リモートyum倉庫の配置
注:node 1~node 3同上
七、重要なソフトウェアバージョンの選択
現在puppetの最も成熟したバージョンは2.7.1と3.3バージョンであり,両バージョンとも可能であり,本実験では2.7バージョンを用いた.
ホームに戻る
コミュニケーション:
微信公衆番号:puppet 2014、微信検索加入可能、以下のQRコードをスキャンして加入可能
微信公衆番号
QQ交流群:296934942
仕事をよくしようとすると,まずその器を利する.
原文住所:http://kisspuppet.com/2014/03/06/puppet_learning_base3/
Puppetをインストールする前に、ネットワークアドレス仕様、ホスト名、certname名、時間など、多くの予備作業が必要ですが、これらの準備ができているだけで、puppetをインストールした後に問題を発見して後悔することはありません.説明:次のドキュメントシステムは、本編のドキュメント仕様案で設計され、拡張され、準生産の基準に従って作成されます.
一、ネットワークアドレス規範
【HOSTNAME】 【IP】 【certname】 【operatingsystem】
puppetmaster.kisspuppet.com 192.168.100.110/24 puppetmaster_cert.kisspuppet.com RHEL6.4
agent1.kisspuppet.com 192.168.100.111/24 agent1_cert.kisspuppet.com RHEL5.7
agent2.kisspuppet.com 192.168.100.112/24 agent2_cert.kisspuppet.com RHEL5.8
agent3.kisspuppet.com 192.168.100.123/24 agent3_cert.kisspuppet.com RHEL6.4
注意:192.168.100.*/24のゲートウェイは192.168.100.110すべてのサーバのDNS 1は192.168.100.110です.
1、ホスト名の設定
[root@puppetmaster ~]# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=puppetmaster.kisspuppet.com
[root@agent1 ~]# vim /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=agent1.kisspuppet.com
注:agent 2~agent 3同上
2、IPアドレスの設定
system-config-network
コマンドで設定した後、プロファイルにアクセスして変更できます.[root@puppetmaster ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.100.110
NETMASK=255.255.255.0
GATEWAY=192.168.100.110
DNS1=192.168.100.110
IPV6INIT=no
USERCTL=no
注:node 1~node 3同上
3、NetworkManagerサービスを閉じる
NetworkManagerサービスは、RHELグラフィックスインタフェース管理NICのサービスで、そのオープンがネットワークに影響を与えるため、RHEL 6はデフォルトでオンになっていますので、オフにすることをお勧めします.
[root@puppetmaster ~]# /etc/init.d/NetworkManager stop
Stopping NetworkManager daemon: [ OK ]
[root@puppetmaster ~]# chkconfig NetworkManager off
注:node 1~node 3同上
4、ファイアウォールを閉じる
本実験は主にアーキテクチャ全体の機能をテストするためであり,ファイアウォールをテストする場合は別途解決してください.
[root@puppetmaster ~]# /etc/init.d/iptables stop
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
[root@puppetmaster ~]# chkconfig iptables off
注:node 1~node 3同上
5、selinuxを閉じる
[root@puppetmaster ~]# sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
注:node 1~node 3同上
6、設定key操作の便宜上、公開鍵秘密鍵を設定し、puppetmaster側で統一的に配置することができる
[root@puppetmaster ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ff:55:8d:31:34:b4:b3:6a:70:3b:aa:09:76:12:5b:8d [email protected]
The key's randomart p_w_picpath is:
+--[ RSA 2048]----+
| .+ |
| . o |
| = |
| o *.|
| . E o . o o|
| + . o o . |
| = . . = . |
| . + . + o |
| o.. . |
+-----------------+
[root@puppetmaster ~]# for i in {1..3}; do ssh-copy-id -i 192.168.100.11$i; done
The authenticity of host '192.168.100.111 (192.168.100.111)' can't be established.
RSA key fingerprint is ae:db:c5:0c:0e:3f:8c:62:ea:a1:26:e2:09:63:18:32.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.100.111' (RSA) to the list of known hosts.
[email protected]'s password:
Now try logging into the machine, with "ssh '192.168.100.111'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
...
7、hostsファイルの設定
puppet通信の前提はagentとmasterがホスト名を互いに解析できることである.もちろん、DNSを設定することもできます.第4部でkermitアーキテクチャを構築するときにDNSサービスを構築します.今しばらくhostsファイルで解析を行います.まずpuppetmasterを設定した後、copyをすべてのノードに統一することができます.
[root@puppetmaster ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.110 puppetmaster.kisspuppet.com puppetmaster
192.168.100.111 agent1.kisspuppet.com agent1
192.168.100.112 agent2.kisspuppet.com agent2
192.168.100.113 agent3.kisspuppet.com agent3
[root@puppetmaster ~]# for i in {1..3}; do scp /etc/hosts 192.168.100.11$i:/etc/; done
hosts 100% 354 0.4KB/s 00:00
hosts 100% 354 0.4KB/s 00:00
hosts 100% 354 0.4KB/s 00:00
[root@agent1 ~]# ping puppetmaster.kisspuppet.com #
PING puppetmaster.kisspuppet.com (192.168.100.110) 56(84) bytes of data.
64 bytes from puppetmaster.kisspuppet.com (192.168.100.110): icmp_seq=1 ttl=64 time=0.327 ms
64 bytes from puppetmaster.kisspuppet.com (192.168.100.110): icmp_seq=2 ttl=64 time=0.996 ms
64 bytes from puppetmaster.kisspuppet.com (192.168.100.110): icmp_seq=3 ttl=64 time=1.00 ms
--- puppetmaster.kisspuppet.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.327/0.774/1.000/0.317 ms
注意:ネットワークを設定した後、Xshellのようなツールでログインすることができ、操作しやすい
二、ローカルディスクyumソースの構成
こちらはvmware仮想マシンの操作なので、ディスクは直接あるディレクトリにマウントできます.物理マシンであれば、ディスクのファイルをすべて指定したディレクトリにコピーし、beaeurlを指すことをお勧めします.
[root@puppetmaster ~]# mkdir /media/cdrom
[root@puppetmaster ~]# mount /dev/cdrom /media/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@puppetmaster ~]# cp /etc/yum.repos.d/rhel-source.repo /etc/yum.repos.d/rhel-base.repo
[root@puppetmaster ~]# vim /etc/yum.repos.d/rhel-base.repo
[rhel-base]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@puppetmaster ~]# yum clean all
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Cleaning repos: rhel-base
Cleaning up Everything
[root@puppetmaster ~]# yum install tree lrzsz #
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
rhel-base | 3.9 kB 00:00 ...
rhel-base/primary_db | 3.1 MB 00:01 ...
Setting up Install Process
Resolving Dependencies
...
注:node 1~node 3同上
説明:RHEL 5のReportはServerディレクトリにあるので、Repoファイルを構成する際にパラメータ
baseurl=file:///media/cdrom/Server
三、NTPサーバーの設置1、NTPサーバーを配置してntpサーバーとローカルを設定して同期する.もちろん、ネットワークが外部サーバーと同期できる場合、ここではすべてのサーバーの時間が一致することを保証するだけである.なぜなら、puppetmasterとagentの間の時間の差は10分を超えてはならない(そうであるようだ)が、後期に構成されたmcollecitveサービス側とクライアント間の差は60秒ではないからである.
[root@puppetmaster ~]# rpm -qa | grep ntp
fontpackages-filesystem-1.41-1.1.el6.noarch
ntpdate-4.2.4p8-3.el6.x86_64 #
ntp-4.2.4p8-3.el6.x86_64 #
[root@puppetmaster ~]# cp /etc/ntp.conf{,.bak}
[root@puppetmaster ~]# vim /etc/ntp.conf
driftfile /var/lib/ntp/drift
logfile /var/log/ntp.log
Broadcastdelay 0.008
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict default ignore
restrict 127.0.0.1
restrict -6 ::1
restrict 192.168.100.0 mask 255.255.255.0 notrap nomodify
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10 refid NIST
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
[root@puppetmaster ~]# /etc/init.d/ntpd start
Starting ntpd: [ OK ]
[root@puppetmaster ~]# chkconfig ntpd on
2、ノードテストとcrontabの設定
[root@agent1 ~]# ntpdate puppetmaster.kisspuppet.com
7 Mar 06:08:30 ntpdate[16411]: adjust time server 192.168.100.110 offset 0.049448 sec
[root@agent1 ~]# crontab -l # croutab -e
*/30 * * * * /usr/sbin/ntpdate puppetmaster.kisspuppet.com >>/root/ntdate.log 2>&1 && /sbin/clock --systohc
[root@agent1 ~]# /etc/init.d/crond reload
Reloading cron daemon configuration: [ OK ]
四、地元yum倉庫を作る
本実験の大部分のパッケージはhttp://yum.puppetlabs.com、一部のパッケージはEPELやGems公式サイト、rabbitmq公式などから、yum倉庫の作り方についてhttp://kisspuppet.com/2014/01/26/puppet_create_repo/、ここで簡単に操作します
[root@puppetmaster RHEL6U4]# yum install createrepo #
[root@puppetmaster RHEL6U4]# createrepo . # rpm repodata
Spawning worker 0 with 105 pkgs
Workers Finished
Gathering worker results
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
注意:RHEL 5のrepodataはRHEL 5環境でcreaterpoコマンド生成を実行する必要があります
五、FTPサーバーの配置
1、FTPサーバーのインストールと配置
FTPサーバを構築する目的はyum倉庫をカスタマイズするための準備である限り
[root@puppetmaster ~]# yum install vsftpd
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
rhel-base | 3.9 kB 00:00 ...
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package vsftpd.x86_64 0:2.2.2-11.el6 will be installed
--> Finished Dependency Resolution
...
[root@puppetmaster ~]# cp /etc/vsftpd/vsftpd.conf{,.bak}
[root@puppetmaster ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_root=/puppet #
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
[root@puppetmaster ~]# /etc/init.d/vsftpd start
Starting vsftpd for vsftpd: [ OK ]
[root@puppetmaster ~]# chkconfig vsftpd on
2、FTP共有ディレクトリにyum倉庫を作る
生成したyumソースcopyをFTP共有ディレクトリに
[root@puppetmaster ~]# ll /puppet/
total 12
drwxr-xr-x 4 root root 4096 Mar 7 06:21 RHEL5U7
drwxr-xr-x 4 root root 4096 Mar 7 06:21 RHEL5U8
drwxr-xr-x 6 root root 4096 Mar 7 06:21 RHEL6U4
[root@puppetmaster ~]# ll /puppet/RHEL6U4/
total 16600
-rw-r--r-- 1 root root 87643 Mar 7 06:21 facter-1.7.3-1.el5.x86_64.rpm
-rw-r--r-- 1 root root 87440 Mar 7 06:21 facter-1.7.3-1.el6.x86_64.rpm
drwxr-xr-x 2 root root 4096 Mar 7 06:21 gem
-rw-r--r-- 1 root root 634944 Mar 7 06:21 GeoIP-1.4.8-1.el6.x86_64.rpm
-rw-r--r-- 1 root root 151654 Mar 7 06:21 keepalived-1.2.7-1.1.x86_64.rpm
-rw-r--r-- 1 root root 10924 Mar 7 06:21 mcollective-2.2.4-1.el6.noarch.rpm
-rw-r--r-- 1 root root 24596 Mar 7 06:21 mcollective-client-2.2.4-1.el6.noarch.rpm
-rw-r--r-- 1 root root 759300 Mar 7 06:21 mcollective-common-2.2.4-1.el6.noarch.rpm
drwxr-xr-x 3 root root 4096 Mar 7 06:21 mcollective-plugins
drwxr-xr-x 2 root root 4096 Mar 7 06:21 mq
-rw-r--r-- 1 root root 406588 Mar 7 06:21 nginx-1.0.15-5.el6.x86_64.rpm
-rw-r--r-- 1 root root 1128352 Mar 7 06:21 puppet-2.7.23-1.el6.noarch.rpm
-rw-r--r-- 1 root root 4509032 Mar 7 06:21 puppet-dashboard-1.2.23-1.el6.noarch.rpm
-rw-r--r-- 1 root root 25596 Mar 7 06:21 puppet-server-2.7.23-1.el6.noarch.rpm
-rw-r--r-- 1 root root 3729988 Mar 7 06:21 rabbitmq-server-3.1.5-1.el6.noarch.rpm
drwxr-xr-x 2 root root 4096 Mar 7 06:21 repodata
...
六、リモートyum倉庫の配置
[root@puppetmaster ~]# vim /etc/yum.repos.d/rhel-puppet.repo
[rhel-puppet]
name=puppetlabs epel gems for rhel
baseurl=ftp://puppetmaster.kisspuppet.com/RHEL6U4 # FTP
enabled=1
gpgcheck=0
[root@puppetmaster ~]# yum list | grep puppet-server #
puppet-server.noarch 2.7.25-1.el6 rhel-puppet
注:node 1~node 3同上
七、重要なソフトウェアバージョンの選択
現在puppetの最も成熟したバージョンは2.7.1と3.3バージョンであり,両バージョンとも可能であり,本実験では2.7バージョンを用いた.
puppet-server 2.7.25-1 puppetlabs
puppet 2.7.25-1 puppetlabs
facter 1.7.5 puppetlabs
puppet-dashboar 1.2.23 puppetlabs
ruby 1.8.*
mcollective 2.2.4 puppetlabs
activemq 5.5.0 puppetlabs
rabbitmq-server 3.1.5 rabbitmq
kermit-webui 1.2-1 kermit
...
ホームに戻る
コミュニケーション:
微信公衆番号:puppet 2014、微信検索加入可能、以下のQRコードをスキャンして加入可能
微信公衆番号
QQ交流群:296934942