How to config timezone with Vagrant, Puppet and Hi

2019-05-11 16:24发布

问题:

I'm using PuPHPet for my testing environments, which is based on Vagrant/Puppet+Hiera.

In the config.yml (Hiera config file) I would like to add section for my timezone

and with command vagrant provision setup it properly.

It's that possible?

回答1:

Just add your timezone to whatever key you want in your hiera file, let's call it timezone. The value for which and the puppet code you'd need to set that timezone depends on the system you're firing up, but I'll assume RedHat flavor of unix.

I recommend setting that to any valid value you'd see under /usr/share/zoneinfo. As an example your key may look like:

timezone: 'US/Pacific'

Then you'd use the file puppet type to symlink /etc/localtime to the full path of the timezone:

$tz = hiera('timezone')
file {'/etc/localtime': ensure => link, target => "/usr/share/zoneinfo/${tz}"}


回答2:

You can install Time Zone plugin for Vagrant (vagrant plugin install vagrant-timezone) and configure Vagrantfile in the following way:

Vagrant.configure("2") do |config|
  if Vagrant.has_plugin?("vagrant-timezone")
    config.timezone.value = "UTC"
  end
  # ... other stuff
end

Instead of UTC you can also use :host to synchronize timezone with the host.