FreeBSD 14
Sponsored Link

Puppet : 利用方法 [facter 変数]2024/09/12

 

[facter] 変数というシステム関連の情報が自動でセットされた変数が用意されており、必要に応じて利用することができます。

[1] facter 変数の一覧を表示する。
root@dlp:~ #
facter

augeas => {
  version => "1.14.0"
}
disks => {
  cd0 => {
    model => "QEMU QEMU DVD-ROM",
    size => "0 bytes",
    size_bytes => 0
  },
  vtbd0 => {
    size => "30.00 GiB",
    size_bytes => 32212254720
  }
}
dmi => {
  bios => {
    release_date => "11/22/2023",
    vendor => "EDK II",
    version => "edk2-20231122-6.el9_4.2"
  },
  manufacturer => "Red Hat",
  product => {
    name => "KVM",
    uuid => "5e2c10a0-2aba-4069-87c5-85953ba0dfba"
  }
}
facterversion => 4.7.1
.....
.....
[2] 例として、OS が [FreeBSD] で 且つ メジャーリリース番号が [14] の場合は [sample01] クラスを適用、
メジャーリリース番号がそれ以外の場合は [sample02] クラスを適用、
OS が [FreeBSD] 以外の場合は [sample03] クラスを適用する。
root@dlp:~ #
vi /usr/local/etc/puppet/code/environments/production/manifests/class.pp
class sample01 {
  file { '/home/testfile9.txt':
    ensure  => file,
    owner   => 'root',
    group   => 'wheel',
    mode    => '0644',
    content => 'This is the puppet test file.',
  }
}
class sample02 {
  user { 'dragonfly':
    ensure     => present,
    home       => '/home/dragonfly',
    managehome => true,
  password   => '$6$v/Mo7qyDFJU9d*****',
  }
}
class sample03 {
  file { '/home/testfile10.txt':
    ensure  => file,
    owner   => 'root',
    group   => 'wheel',
    content => 'test file #10',
  }
}
case $facts['os']['name'] {
  'FreeBSD': {
    if $facts['os']['release']['major'] == '14' { include 'sample01' }
    else { include 'sample02' }
  }
  default: { include 'sample03' }
}
関連コンテンツ