Назад | Перейти на главную страницу

марионетка добавляет временную метку в содержимое файла

супер новый для марионетки. Не удалось найти хороший пример того, как добавить метку времени в файл puppet.pp

node '123' {
  file { '/tmp/hello':
    content => "hello world",
  }

  file { '/tmp/timestamped':
    content => 'date',
  }

Просто хотел распечатать текущую дату, когда этот манифест применяется к файлу с отметкой времени

версия: 4.10

Это должно работать. Используйте команду generate для создания и присвоения переменной. Затем назначьте переменную содержимым файла.

$timestamp = generate('/bin/date', '%Y-%m-%dT%H:%M:%S')

file {'/tmp/timestamped':
   content => "$timestamp"
}

Версия марионетки <4.8.0

Если вы используете версию старше 4.8.0 вы можете использовать функцию strftime() в модуле stdlib (http://www.puppetmodule.info/github/simp/puppetlabs-stdlib/puppet_functions_ruby3x/strftime)

Версия марионетки> 4.8.0

Если вы используете более новую версию марионетки, вам следует использовать Timestamp.new().strftime() (https://puppet.com/docs/puppet/latest/function.html#strftime)

Пример (вам нужно использовать только одно из назначений):

#ISO 8601
$timestamp = Timestamp.new().strftime('%Y-%m-%dT%H:%M:%S%:z')
notice ($timestamp)

#RFC 822, 1036, 1124, 2822
$timestamp = Timestamp.new().strftime('%a, %d %b %Y %H:%M:%S %z') 
notice ($timestamp)

file {'/tmp/timestamped':
   content => "$timestamp"
}