puppetカスタムfact変数
一、puppetmaster構成:
1. 環境変数を増やし、作成した変数が有効かどうかをテストするためにのみ使用します.
2. カスタム変数ファイルパスは、/etc/puppet/modules/$NAME/lib/factor#$NAMEで任意に定義され、他のモジュールで使用できます.
3. テスト変数
4. テストモジュールの定義
二、puppet agent端テスト
1. 環境変数を増やし、作成した変数が有効かどうかをテストするためにのみ使用します.
[root@lw-01 ~]# vi /etc/profile :
#puppet facter
export FACTERLIB=/etc/puppet/modules/facts/lib/facter/ #
[root@lw-01 ~]# source /etc/profile
2. カスタム変数ファイルパスは、/etc/puppet/modules/$NAME/lib/factor#$NAMEで任意に定義され、他のモジュールで使用できます.
[root@lw-01 modules]# pwd
/etc/puppet/modules
[root@lw-01 modules]# tree facts/
facts/
└── lib
└── facter # rb facter
├── lannet.rb
├── load_avg.rb
└── log_num.rb
2 directories, 6 files
[root@lw-01 modules]# cd facts/lib/facter/
[root@lw-01 facter]# cat log_num.rb
Facter.add(:log_num) do #log_num
setcode do
%x{/usr/bin/who |wc -l}.chomp
end
end
3. テスト変数
[root@lw-01 facter]# facter log_num
3
:
[root@lw-01 facter]# facter | grep log_num
log_num => 3
4. テストモジュールの定義
[root@lw-01 modules]# tree test/
test/
├── files
├── manifests
│ └── init.pp
└── templates
└── test.rb
3 directories, 2 files
[root@lw-01 test]# cat manifests/init.pp
class test {
test::pwd
}
class test::pwd{
$log_num= "$log_num" #
file{"/root/test/test.txt": #puppet agent test.txt
ensure => present,
content => template('test/test.rb'),
mode => '644',
owner => 'root',
group => 'root',
}
}
[root@lw-01 test]# cat templates/test.rb
log_num: <%= scope.lookupvar('test::pwd::log_num') %>
二、puppet agent端テスト
[root@lw-02 ~]# puppet agent --test
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for 192.168.2.11
Info: Applying configuration version '1429004437'
Notice: /Stage[main]/Test::Pwd/File[/root/test/test.txt]/ensure: created
Notice: /Stage[main]/Test::Exec/Exec[test]/returns: executed successfully
Notice: Finished catalog run in 1.77 seconds
[root@lw-02 ~]# cd /root/test/
[root@lw-02 test]# cat test.txt
log_num: 3 # ,log_num
[root@lw-02 ~]# facter -p # fact