Untuk informasi apa itu puppet, detail mekanisme dan bagaimana puppet bekerja bisa di lihat pada blog ini juga di http://unixhat.blogspot.com/2012/02/server-automasi-dan-manajemen.html, disini penulis akan membatasi pada konfigurasi puppet dan puppet server, agar tidak terjadi kesalahpahaman versi yang digunakan adalah 3.0.0-1 jadi bila anda ingin mencoba pastikan dengan versi yang sama atau diatasnya, karena versi 2.6.x atau 2.7.x sudah banyak yang berbeda. Berikut hal-hal yang akan penulis uraikan:
1. Penjelasan File-file pada puppet
2. Tool pada puppet
3. Instalasi puppet dan puppet server
4. Koneksi antara puppet agent dengan puppet server
1. Penjelasan File-file pada puppet
A. puppet.conf
File ini adalah konfigurasi utama pada puppet, pada linux terletak /etc/puppet/puppet.conf untuk versi opensource dan /etc/puppetlabs/puppet pada versi enterprise, sedangkan pada Windows terletak pada C:\Documents and Settings\All Users\Application Data\PuppetLabs\puppet\etc untuk Windows 2003, dan C:\ProgramData\PuppetLabs\puppet\etc untuk Windows 7 dan Windows 2008.
File ini menggunakan format yang sama seperti file 'INI', dengan [config blocks] untuk membuat sebuah group dari sebuah baris seperti setting = value. Kita bisa juga menyisipkan variable seperti $logdir, yang perlu diingat adalah hati-hati pada saat kita menggunakan $environment karena sebuah variabel spesial.
Berikut adalah contoh default puppet.conf
[main] # The Puppet log directory. # The default value is '$vardir/log'. logdir = /var/log/puppet # Where Puppet PID files are kept. # The default value is '$vardir/run'. rundir = /var/run/puppet # Where SSL certificates are kept. # The default value is '$confdir/ssl'. ssldir = $vardir/ssl [agent] # The file in which puppetd stores a list of the classes # associated with the retrieved configuratiion. Can be loaded in # the separate ``puppet`` executable using the ``--loadclasses`` # option. # The default value is '$confdir/classes.txt'. classfile = $vardir/classes.txt # Where puppetd caches the local configuration. An # extension indicating the cache format is added automatically. # The default value is '$confdir/localconfig'. localconfig = $vardir/localconfiga. logdir adalah tempat dimana semua log dari puppet di tempatkan
b. rundir adalah tempat dimana puppet menaruh PID-nya
c. ssldir adalah tempat dimana puppet manaruh sertifikat SLL-nya
d. classfile adalah sebuah file dimana puppetd me-list semua class yang dimilikinya
e. localconfig adalah tempat dimana puppetd me-cache semua local konfigurasi di localnya sendiri
Config Block
a. [main] Block adalah block utama untuk sebuah setting, dimana value yang diletakkan disini akan di terimplementasi atau selalu aktif, kecuali ada value yang digunakan pada block lain.
b. [agent] Block adalah hanya bisa digunakan pada puppet agent
c. [master] Block adalah hanya bisa digunakan pada puppet master atau puppet server dan puppet cert
d. [user] Block adalah hanya bisa digunakan untuk keperluan puppet apply
B. auth.conf
File ini yang mengatur tentang penggunaan REST API yang di miliki puppet, defaultnya terletak pada /etc/puppet/auth.conf, format filenya berbeda dengan puppet.conf, menggunakan ACL syntax, berikut adalah contoh defaultnya:
# allow nodes to retrieve their own catalog path ~ ^/catalog/([^/]+)$ method find allow $1 # allow nodes to retrieve their own node definition path ~ ^/node/([^/]+)$ method find allow $1 # allow all nodes to access the certificates services path /certificate_revocation_list/ca method find allow * # allow all nodes to store their reports path /report method save allow * # unconditionally allow access to all file services # which means in practice that fileserver.conf will # still be used path /file allow * ### Unauthenticated ACL, for clients for which the current master doesn't ### have a valid certificate; we allow authenticated users, too, because ### there isn't a great harm in letting that request through. # allow access to the master CA path /certificate/ca auth any method find allow * path /certificate/ auth any method find allow * path /certificate_request auth any method find, save allow * # this one is not stricly necessary, but it has the merit # of showing the default policy, which is deny everything else path / auth any
Isinya dengan mudah bisa kita mengerti, tinggal mengatur saja sesuai kebutuhan pada enviroment yang kita miliki.
C. fileserver.conf
File ini berguna ketika pada saat kita ingin melakukan layanan untuk sebuah file untuk sebuah module, tapi pada dasarnya kita tidak begitu membutuhkan file ini. Berikut contoh default ini file tersebut:
# This file consists of arbitrarily named sections/modules # defining where files are served from and to whom # Define a section 'files' # Adapt the allow/deny settings to your needs. Order # for allow/deny does not matter, allow always takes precedence # over deny # [files] # path /var/lib/puppet/files # allow *.example.com # deny *.evil.example.com # allow 192.168.0.0/24Semua di beri comment karena memang secara default puppet tidak menggunakan file tersebut.
D. Files lainnya
File yang penulis jelaskan adalah files yang secara default ada pada saat kita baru menginstalasi puppet, tetapi ada pula file yang kita bisa buat sendiri, dengan fungsinya masing-masing, berikut files-nya:
1. autosign.conf, pada saat sebuah puppet agent ingin mendaftarkan dirinya pada puppetmaster, maka si puppet server akan menahan cert request-nya dahulu, dan biasanya kita bila kita mengenal host dari si agent maka kita akan melakukan sign pada puppet master, tapi bisa kita bekerja di sebuah trusted network dan sedang melakukan massive installation, akan lebih mudah dengan mengautomatiskan proses sign tersebut, nah file inilah yang mengaturnya. Berikut adalah contoh filenya:
1. autosign.conf, pada saat sebuah puppet agent ingin mendaftarkan dirinya pada puppetmaster, maka si puppet server akan menahan cert request-nya dahulu, dan biasanya kita bila kita mengenal host dari si agent maka kita akan melakukan sign pada puppet master, tapi bisa kita bekerja di sebuah trusted network dan sedang melakukan massive installation, akan lebih mudah dengan mengautomatiskan proses sign tersebut, nah file inilah yang mengaturnya. Berikut adalah contoh filenya:
private.local.net *.secure.local.net *.trust2. puppetdb.conf
File ini berisi nama hostname dan nomor port dari puppetDB, hanya digunakan jika kita menggunakan puppetDB. PuppetDB adalah melakukan collect data yang telah di buat oleh si puppet, dengan fitur yang lebih seperti inventory service, exported resources dan bisa di jadikan pondasi untuk aplikasi lain yang menggunakan data dari puppet. Format filenya sama dengan puppet.conf tapi isnya hanya ada 2, nama server dan port dengan satu block config yaitu [main], berikut contohnya:
[main] server = puppetdb.server.net port = 80813. tagmail.conf
File ini berfungsi untuk mengirim email kepada seorang admin yang berbeda, pada saat puppet menemukan sebuah konfigurasi yang telah di define berubah. Yang di butuhkan untuk itu adalah menambah opsi report = true pada puppet agent, reports = tagmail, untuk reportfrom , smtpserver dan sendmail, di set pada puppet server. Juga bisa melakukan log dengan log level (debug, info, notice, warning, err, alert, emerg, crit, dan verbose). Berikut adalah contohnya:
all: log-archive@unixhat.com ftp, !http: httpadmins@unixhat.com emerg, crit: heriyanto@unixhat.com, ghozi@unixhat.com, ummi@unixhat.com
Demikian penjelasan mengenai files konfigurasi pada puppet, sebenarnya masih ada lagi files konfigurasi lain tetapi biasanya di pakai pada versi 2.6.x atau 2.7.x, entah pada versi 3.0.x masih bisa dipakai atau tidak, makanya penulis tidak membahasnya lebih lanjut. Untuk lebih jelasnya kita bisa http://docs.puppetlabs.com, sub artikel ini referensinya kesana juga.
2. Tool pada puppet
Tidak seperti versi sebelumnya, dimana puppet memiliki tool berbeda untuk fungsi yang berbeda, seperti puppetca, puppetd, puppet maupun puppetdoc, pada versi 3.0.x ini puppet semua tergabung menjadi satu, yaitu hanya puppet. Jadi pembahasan pada sub ini tidak akan panjang. Bukan berarti fitur puppetca, puppetd, dan puppetdoc hilang, tidak, fitur tersebut ada tetapi sekarang menjadi subcommand dari puppet. Contoh puppetca, sekarang bisa diakses melalui puppet ca. Berikut penjelasannya untuk setiap subcommand yang dengan mudah bisa keluar dengan perintah puppet help:
[root@LAB01-01 ~]# puppet help Usage: puppetPenulis yakin kita tidak perlu mengartikannya satu per satu ke dalam bahasa Indonesia =D. Karena memang sudah jelas sekali keterangan dari puppet help.[options] [options] Available subcommands: agent The puppet agent daemon apply Apply Puppet manifests locally ca Local Puppet Certificate Authority management. catalog Compile, save, view, and convert catalogs. cert Manage certificates and requests certificate Provide access to the CA for certificate management. certificate_request Manage certificate requests. certificate_revocation_list Manage the list of revoked certificates. config Interact with Puppet's configuration options. describe Display help about resource types device Manage remote network devices doc Generate Puppet documentation and references facts Retrieve and store facts. file Retrieve and store files in a filebucket filebucket Store and retrieve files in a filebucket help Display Puppet help. inspect Send an inspection report instrumentation_data Manage instrumentation listener accumulated data. instrumentation_listener Manage instrumentation listeners. instrumentation_probe Manage instrumentation probes. key Create, save, and remove certificate keys. kick Remotely control puppet agent man Display Puppet manual pages. master The puppet master daemon module Creates, installs and searches for modules on the Puppet Forge. node View and manage node definitions. parser Interact directly with the parser. plugin Interact with the Puppet plugin system. queue Queuing daemon for asynchronous storeconfigs report Create, display, and submit reports. resource The resource abstraction layer shell resource_type View classes, defined resource types, and nodes from all manifests. secret_agent Mimics puppet agent. status View puppet server status. See 'puppet help ' for help on a specific subcommand action. See 'puppet help ' for help on a specific subcommand. Puppet v3.0.0
3. Instalasi puppet dan puppet server
Sebelum masuk pada tahap instalasi, ada baiknya penulis menjelaskan terlebih dahulu tentang enviroment yang dimiliki. Yang akan penulis jabarkan adalah sebuah domu (mesin virual dari Xen).
1. Puppet Server Mesin LAB01-01 hostname: LAB01-01.cloud.net ip: 192.168.0.117 2. Puppet Agent Mesin LAB01-02 hostname: LAB01-02.cloud.net ip: 192.168.0.128a. Instalasi puppet repository
Tahap ini adalah dimana kita melakukan instalasi rpm milik puppetlabs, agar pada waktu melakukan yum install puppet kita bisa mengambil file rpm beserta depensinya dari server puppetlabs, sebenarnya hal ini tidak multak, asalkan kita punya semua paket yang dibutuhkan puppet, kita bisa menginstallnya sendiri. Atau pada case tertentu dimana enviroment kita memiliki repository sendiri tinggal mengambil paket-paket yang dibutuhkan lalu masukan ke dalam repository kita. Cara ini penulis contohkan agar mempermudah dalam uji coba yang pembaca lakukan.
[root@LAB01-01 ~]# rpm -ivh http://yum.puppetlabs.com/el/5/products/x86_64/puppetlabs-release-5-6.noarch.rpm Retrieving http://yum.puppetlabs.com/el/5/products/x86_64/puppetlabs-release-5-6.noarch.rpm warning: /var/tmp/rpm-xfer.NlPkkT: Header V3 RSA/SHA1 signature: NOKEY, key ID 4bd6ec30 Preparing... ########################################### [100%] 1:puppetlabs-release ########################################### [100%]
Pastikan repository ada:
[root@LAB01-01 yum.repos.d]# yum repolist -v --snippet-- Repo-id : puppetlabs-deps Repo-name : Puppet Labs Dependencies El 5 - x86_64 Repo-updated : Sat Oct 6 23:43:49 2012 Repo-pkgs : 39 Repo-size : 69 M Repo-baseurl : http://yum.puppetlabs.com/el/5/dependencies/x86_64/ Repo-expire : 3,600 second(s) (last: Wed Oct 10 05:26:38 2012) Repo-id : puppetlabs-products Repo-name : Puppet Labs Products El 5 - x86_64 Repo-updated : Sat Oct 6 23:44:00 2012 Repo-pkgs : 110 Repo-size : 143 M Repo-baseurl : http://yum.puppetlabs.com/el/5/products/x86_64/ Repo-expire : 3,600 second(s) (last: Wed Oct 10 05:26:39 2012) --snippet--
b. install puppetmaster pada mesin LAB01-01
[root@LAB01-01 yum.repos.d]# yum install puppet-server puppet-server noarch 3.0.0-1.el5 Installing for dependencies: augeas-libs x86_64 0.10.0-3 facter x86_64 1:1.6.13-1.el5 hiera noarch 1.1.0-1.el5 libselinux-ruby x86_64 1.33.4-5.7.el5 puppet noarch 3.0.0-1.el5 ruby x86_64 1.8.7.370-1.el5 ruby-augeas x86_64 0.4.1-1 ruby-irb x86_64 1.8.7.370-1.el5 ruby-libs x86_64 1.8.7.370-1.el5 ruby-rdoc x86_64 1.8.7.370-1.el5 ruby-shadow x86_64 1.4.1-7 rubygem-json x86_64 1.4.6-1.el5 rubygems noarch 1.3.1-1 Install 14 Package(s) Upgrade 0 Package(s) Total download size: 5.4 M
Cek keberadaan paket puppetmaster yang kita install pada mesin LAB01-01:
c. install puppet agent pada mesin LAB01-02
[root@LAB01-01 ~]# rpm -qa|grep puppet puppetlabs-release-5-6 puppet-3.0.0-1.el5 puppet-server-3.0.0-1.el5Terlihat puppet-3.0.0-1.el5 dan puppet-server-3.0.0-1.el5 sudah terinstall dengan baik sekarang kita menuju ke mesin yang akan menjadi agent.
c. install puppet agent pada mesin LAB01-02
[root@LAB01-02 yum.repos.d]# yum install puppet puppet noarch 3.0.0-1.el5 Installing for dependencies: augeas-libs x86_64 0.10.0-3 facter x86_64 1:1.6.13-1.el5 hiera noarch 1.1.0-1.el5 libselinux-ruby x86_64 1.33.4-5.7.el5 ruby x86_64 1.8.7.370-1.el5 ruby-augeas x86_64 0.4.1-1 ruby-irb x86_64 1.8.7.370-1.el5 ruby-libs x86_64 1.8.7.370-1.el5 ruby-rdoc x86_64 1.8.7.370-1.el5 ruby-shadow x86_64 1.4.1-7 rubygem-json x86_64 1.4.6-1.el5 rubygems noarch 1.3.1-1 Install 13 Package(s) Upgrade 0 Package(s) Total download size: 5.3 MCek keberadaan paket puppet agent yang kita install pada mesin LAB01-02:
[root@LAB01-01 ~]# rpm -qa|grep puppet puppetlabs-release-5-6 puppet-3.0.0-1.el5Terlihat puppet-3.0.0-1.el5 sudah terinstall dengan baik.
4. Koneksi antara puppet agent dengan puppet server
Ini adalah tahap akhir dari turorial penulis, karena setelah selesai sub artikel ini, maka puppet sudah siap digunakan, yang akan kita lakukan adalah berusaha menghubungkan antara puppet agent dan puppetmaster, agar bisa saling berkomunikasi, dalam artian LAB01-01 mengakui keberadaan dan siap melayani LAB01-02 sebagai puppet agent. Hal-hal yang akan kita lakukan:
a. Menambahkan opsi pada agent
a. Menambahkan opsi pada agent
b. Membuka firewall untuk puppet
c. Menjalankan puppetmaster
d. Meregistrasi mesin LAB01-02 sebagai puppet agent pada puppetmaster
e. Testing koneksi antar puppet agent dengan puppetmaster.
a. Menambahkan opsi pada agent
Kita akan menambahkan alamat server pada file puppet.conf di agent, yaitu server = LAB01-01.cloud.net pada block config [agent]. Berikut contoh lengkapnya dari file puppet.conf di agent:
Kita akan menambahkan alamat server pada file puppet.conf di agent, yaitu server = LAB01-01.cloud.net pada block config [agent]. Berikut contoh lengkapnya dari file puppet.conf di agent:
[root@LAB01-02 ~]# cat /etc/puppet/puppet.conf [main] # The Puppet log directory. # The default value is '$vardir/log'. logdir = /var/log/puppet # Where Puppet PID files are kept. # The default value is '$vardir/run'. rundir = /var/run/puppet # Where SSL certificates are kept. # The default value is '$confdir/ssl'. ssldir = $vardir/ssl [agent] # The file in which puppetd stores a list of the classes # associated with the retrieved configuratiion. Can be loaded in # the separate ``puppet`` executable using the ``--loadclasses`` # option. # The default value is '$confdir/classes.txt'. classfile = $vardir/classes.txt # Where puppetd caches the local configuration. An # extension indicating the cache format is added automatically. # The default value is '$confdir/localconfig'. localconfig = $vardir/localconfig server = LAB01-01.cloud.netLihat baris terakhir, sudah ditambahkan.
b. Membuka firewall untuk puppet
Port yang digunakan oleh puppet untuk saling bertukar informasi adalah 8140, maka kita perlu membuka port ini pada firewall, silahkan buka pada masing-masing system firewall maupun routing pembaca seperti cisco, juniper, shorewall, dll, tapi pada linux cukup menggunakan:
[root@LAB01-01 ~]# iptables -A INPUT -p tcp -m state --state NEW --dport 8140 -j ACCEPTPenulis tidak merekomendasi perintah ini pada server production karena akan membuka port untuk semua network. Untuk lebih aman bisa membatasi range network dengan -s 192.168.0.0/24 pada perintah iptables diatas agar terbatas pada alamat IP 192.168.0.0/24.
c. Menjalankan puppetmaster sebagai daemon di LAB01-01
Menjalankan puppetmaster sebagai daemon dan mengecek keberadaannya apakah sudah berjalan dengan baik atau belum
[root@LAB01-01 ~]# /etc/init.d/puppetmaster start Starting puppetmaster: [ OK ] [root@LAB01-01 ~]# ps ax|grep puppet 1634 ? Ssl 0:00 /usr/bin/ruby /usr/bin/puppet master 1639 pts/0 R+ 0:00 grep puppetPada perintah ps ax diatas terlihat PID 1634 yaitu puppetmaster berjalan dengan semestinya.
c. Meregistrasi puppet agent pada puppetmaster
Meregistrasi mesin LAB01-02 sebagai puppet agent pada puppetmaster
Meregistrasi mesin LAB01-02 sebagai puppet agent pada puppetmaster
[root@LAB01-02 ~]# puppet agent --test Info: Creating a new SSL certificate request for lab01-02.cloud.net Info: Certificate Request fingerprint (SHA256): 4E:0C:48:F9:5E:0A:73:F8:7B:03:E2:1B:2B:7F:E4:AB:3C:9F:23:02:5B:96:51:98:C9:12:86:DE:F0:30:42:3A Exiting; no certificate found and waitforcert is disabledYang kita lakukan diatas sebenarnya adalah mengirimkan certificate_requests ke puppetmaster LAB01-01, untuk domain lab01-02.cloud.net. Setelah itu kita menuju puppetmaster, untuk melakukan cek dan sign certificate request untuk domain lab01-02.cloud.net
Cek apakah Certificate Request lab01-02.cloud.net sudah masuk ke puppetmaster belum
[root@LAB01-01 ~]# puppet ca list lab01-02.cloud.net (SHA256) 4E:0C:48:F9:5E:0A:73:F8:7B:03:E2:1B:2B:7F:E4:AB:3C:9F:23:02:5B:96:51:98:C9:12:86:DE:F0:30:42:3ATerlihat sudah, kalau begitu mari kita izinkan mesin LAB01-01 untuk menjadi puppet agent dari LAB01-01
[root@LAB01-01 ~]# puppet ca sign lab01-02.cloud.net Signed certificate request for lab01-02.cloud.net Removing file Puppet::SSL::CertificateRequest lab01-02.cloud.net at '/var/lib/puppet/ssl/ca/requests/lab01-02.cloud.net.pem' "-----BEGIN CERTIFICATE-----\nMIIFXDCCA0SgAwIBAgIBAzANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB1QdXBw\nZXQgQ0E6IGxhYjAxLTAxLmNsb3VkLm5ldDAeFw0xMjEwMDkwOTA3MzVaFw0xNzEw\nMDkwOTA3MzVaMB0xGzAZBgNVBAMMEmxhYjAxLTAyLmNsb3VkLm5ldDCCAiIwDQYJ\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBALTWaRM+BL7zDE5h4v/PUnn5qlGw0lfj\nXwLH6QkATzVcEiB6ehGG+/VCdWmjgdhbg9RUlq8dD0JjFHjx0IJdH6jeBLhV0jen\nsZVz/9BlmBSWNM+Y2A5j5NHZygEJ1z3KbJYMRXgk4UMFx7GtRqH/OTB+EUDY1mhO\nl2HB5RJy+EaXHeEUBluDHgtJmVdQlwutLx1N1Z00c4AavQ1gF5o6grLIodon8YVy\nuiyfOj2pfVvkHUYll/wvWnUZyfguDGsD24pvtnNx4tQ/HGSyrU2sDP5KMKBUZA3M\npkL+NPyRlF8j1aNtVXbDwM+uBKTH6PnMyCE4Ut3AixFQjlYoXD59uWThcxtCtFU0\ngtOvM9IDgzEMa0WM1gzwTN3r8YWGVa2xPdKP0zruKqu8AgkJnU541A26DXzRAIVP\n2gFuGlrfGRko0LOOJoNXhlSZdau/BCSZBxEfyBb1+HPQL/QSRHLaLq2zxaT3kzKf\ngR3JUjAuVG73AsSLthWvE73GrYkaL44EhWtC5jVuQII7l+nT1sgazFN3IZDGGJXB\nsgb0a9ewp8vzkL4Rv16tPqi0YimsJLsNiHXPTEZRkgK93mC3dXsCyMZluusl7Uva\nZmG2CJTpnr9mCRrnPuJcPjFAo1I1j3FPhpoUr2Lyet16ZBBYA6krjiYug865ji3b\n4BGXNyx66jo3AgMBAAGjgZswgZgwIAYDVR0lAQH/BBYwFAYIKwYBBQUHAwEGCCsG\nAQUFBwMCMB0GA1UdDgQWBBSkaK+oO7gWnb/oTbKmuMsPUEhUSjAMBgNVHRMBAf8E\nAjAAMDcGCWCGSAGG+EIBDQQqFihQdXBwZXQgUnVieS9PcGVuU1NMIEludGVybmFs\nIENlcnRpZmljYXRlMA4GA1UdDwEB/wQEAwIFoDANBgkqhkiG9w0BAQsFAAOCAgEA\nE6s4BQiqxttrcSbNWu3duQCen5+omMpOi1l/eCfh2B4absiLzE5XQiqgnv5CED7P\npK6KA/dI77rtbjwmJxRT/mEoIW77ziLV0mLQKBIRwgbWbH80lIOWIGU8Q0inWw4t\nHe8iJwvsFJx+9rcLp9etDxHAzwmZ/QxCBsRZ1AsbSlDVTm0cieM9ARwI+sVEzdKR\n8WMyjWc6nOB0eq+Pvv9Oyvdqmku3qC40zPw3IxFGMljGySlPtfzuPpUNyKBoqTis\nkASGqt+XaBIZpW/o7soyGJejwLam4x7oOgn6olpURHI/Wrh6FLt1UOdj1y3wTejM\nfB61hxlioFnqVPhwBSEyMMgGjCH7cHPA0Q5g7NV8F6dVCtKwl4nJ1hZy28lfz67b\nMFgV5dpc7ManhjuJjQ/vnx5Ti53fPVm7og4aKy15+NHTH+1zvhvZPYfKqQKd7FxP\nKG8g27fXGLfbZlk3ePUnlgWyFfU0CRsxKsmuI+cZ7vo83AReP1PyG7znlVCIMbeo\ndPRe6HXg8s5d3EZfaYuZ9zMuDVMMsqQJFFJFg3zXyMTb3k7kkdNiKUpb5aCFBz6+\nwcLhaUBv6D9usuc0l1Ri2C22IhAMdprhsu7wIf/wiqgSM6OtpqWTY/fTPpyViog9\nJqSoiNWqWuxmSfzdwvH8u4aKy8COca93uf6OabF7EMo=\n-----END CERTIFICATE-----\n"
e. Testing koneksi antar puppet agent dengan puppetmaster.
Testing yang kita lakukan adalah mencoba koneksi yang telah kita registrasi, mengambil catalog dari puppetmaster, apabila tampilan seperti berikut maka sudah berhasil kita mengkoneksikan puppet agent dengan puppetmaster. Jalankan di mesin LAB01-02:
[root@LAB01-02 ~]# puppet agent --test Info: Caching certificate for lab01-02.cloud.net Info: Caching certificate_revocation_list for ca Info: Retrieving plugin Info: Caching catalog for lab01-02.cloud.net Info: Applying configuration version '1349860075' Info: Creating state file /var/lib/puppet/state/state.yaml Finished catalog run in 0.06 secondsTerlihat puppet sudah berhasil meminta catalog dari puppetmaster, menjalankannya dan membuat file state.yaml /var/lib/puppet/state/state.yaml. Alhamdulillah selesai sudah artikel ini, semoga bisa berguna agar penulis mendapat pahala :). Amiin.