読者です 読者をやめる 読者になる 読者になる

solaris11 puppet

僕は誤字脱字が多いですが、頑張って解釈して読んで下さい。


巷では、Windows8の話題で盛り上がっていましたが、同時期にsolaris11.1がリリースされておりました。

Windows8は、インストールしただけではWindows8タッチパネルになりませんが、
solaris11.1は、インストールしただけでタッチパネルになります(嘘です)

solaris11.1はインストールしただけで、クラウド環境を作れます。(本当)


Gentooは、インストールするだけで一苦労ですね。(僕がお休みの間に勝手にサーバがGentooになっておりますが)


そんなどうでもいい話しを置いておきます。


solaris11 に puppet2.7 を インストールしてみました。

たぶん、間違っている部分がたくさんあると思いますが、いい感じに解釈をお願い致します。

後で修正してきます。


sourceforge.jpからJapan OpenSolaris Users Group Packagesのパッケージを取得します。

hg clone http://hg.sourceforge.jp/view/jposug/contrib-spec-files/

CBE(Common Build Environment)でパッケージを作ります。
googleで『solaris11 Common Build Environment』検索すればOK!

ruby-18/facter
puppetをビルドして下さいね。

リポジトリ登録
CBEでビルドしたパッケージのリポジトリを登録します。

root@puppet-master:~# pkg set-publisher -O http://192.168.1.80 ando_ando_ando_repo

rubyのインストール

  root@puppet-master:~# pkg install ruby-18
             Packages to install:  1
                    Create boot environment: No
                    Create backup boot environment: No
  
                    DOWNLOAD                                  PKGS       FILES    XFER (MB)
                    Completed                                  1/1 12001/12001      6.3/6.3                                                                                                                                                                      
  
                    PHASE                                        ACTIONS
                    Install Phase                            14016/14016 
  
                    PHASE                                          ITEMS
                    Package State Update Phase                       1/1 
                    Image State Update Phase                         2/2 


puppetのインストール

  root@puppet-master:~# pkg install pkg:/system/management/puppet/server@2.7.16-0.0.175.0.0.0.2.0
  root@puppet-master:~# pkg install puppet
             Packages to install:  1
                    Create boot environment: No
                    Create backup boot environment: No
                                Services to change:  1
  
                                DOWNLOAD                                  PKGS       FILES    XFER (MB)
                                Completed                                  1/1     814/814      1.1/1.1
  
                                PHASE                                        ACTIONS
                                Install Phase                              1008/1008 
  
                                PHASE                                          ITEMS
                                Package State Update Phase                       1/1 
                                Image State Update Phase                         2/2 


puppetのインストール確認

  root@puppet-master:~#  svcs -a | grep puppet
  online         14:08:28 svc:/network/puppetd:default
  online         14:35:46 svc:/network/puppetmasterd:default


puppetのパス設定

  root@puppet-master:~# vim .profile 
  export PATH=/usr/bin:/usr/sbin:/usr/ruby/1.8/sbin/:/usr/ruby/1.8/bin/


Puppetサーバ/クライアント間の証明書の設定

puppetサーバのhostsファイル編集

  root@puppet-master:~# vim /etc/hosts
  192.168.1.2 puppet

puppetクライアントのhostsファイル編集::

  root@puppet:~# vim /etc/hosts
  192.168.1.3 puppet-master

Puppetサーバの起動

  root@puppet-master:~# puppetmasterd --debug --no-daemonize --verbose
  debug: Failed to load library 'shadow' for feature 'libshadow'
  debug: Puppet::Type::User::ProviderLdap: true value when expecting false
  debug: Puppet::Type::User::ProviderUseradd: file chage does not exist
  debug: Puppet::Type::User::ProviderPw: file pw does not exist
  debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dscl does not exist
  debug: Failed to load library 'selinux' for feature 'selinux'
  debug: Failed to load library 'ldap' for feature 'ldap'
  notice: Starting Puppet master version 2.7.16
  debug: Finishing transaction 70405690
  debug: No file server configuration file; autocreating modules mount with default permissions
  debug: No file server configuration file; autocreating plugins mount with default permissions

selinuxのエラーがでてますね。selinuxはあの人に聞きましょうね。

Puppetクライアントの起動

 root@puppet:~# puppetd --server puppet-master --waitforcert 60 --test


puppetサーバを一時停止する

  root@puppet-master:~# puppetmasterd --debug --no-daemonize --verbose
  ^Cnotice: Caught INT; calling stop


puppetサーバで署名リクエストの確認

  root@puppet-master:~# puppetca --list
    puppet (BB:AA:CC:71:57:9B:AD:3A:B5:EC:26:4B:38:79:25:01)


puppetサーバで署名

 root@puppet-master:~# puppetca --sign puppet
 notice: Signed certificate request for puppet
 notice: Removing file Puppet::SSL::CertificateRequest puppet at '/etc/puppet/ssl/ca/requests/puppet.pem' 


puppetサーバでマニフェストの記述

  root@puppet-master:~# vim /etc/puppet/manifests/site.pp
  node 'puppet' {
            file { '/etc/inet/hoststest':
            owner => 'root',
            group => 'root',
            mode  => 644,
           }
  }


puppetサーバ起動

  root@puppet-master:~# puppetmasterd --no-daemonize --verbose
  notice: Starting Puppet master version 2.7.16


puppetクライアント起動

  root@puppet:/etc/inet# puppetd --server puppet-master --no-daemonize --verbose
  notice: Starting Puppet client version 2.7.16
  info: Caching catalog for puppet
  info: Applying configuration version '1351054723'
  notice: /Stage[main]//Node[puppet]/File[/etc/inet/hoststest]/mode: mode changed '0600' to '0644'
  notice: Finished catalog run in 0.05 seconds


puppetクライアント側でマニフェスト通り変更されているか確認

  root@puppet:/etc/inet# ls -al /etc/inet/hoststest
  -rw-r--r--   1 root     root           4 Oct 24 13:51 /etc/inet/hoststest

solaris11には、puppet3.0.0以上をオススメします。
puppet2.7だとエラーがちらほらでました。

次はSolaris11.1 puppet3で真面目に書きたいと思います。