Попытка использовать Puppet для установки PostgreSQL 9.5 на Ubuntu Trusty, используя все документация Я мог бы найти, со следующей простой структурой классов:
class { 'postgresql::globals':
manage_package_repo => true,
version => '9.5'
}
->
class { 'postgresql::server':
ip_mask_allow_all_users => '0.0.0.0/0',
listen_addresses => '*',
postgres_password => '',
encoding => 'UTF-8',
locale => 'en_US.UTF-8',
}
Я обнаружил следующую фатальную ошибку:
==> default: Debug: Automatically imported postgresql::server::database_grant from postgresql/server/database_grant into production
==> default: Error: validate_re(): "B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8" does not match ["\\A(0x)?[0-9a-fA-F]{8}\\Z", "\\A(0x)?[0-9a-fA-F]{16}\\Z"] at /tmp/vagrant-puppet/modules-964288a1df1d89c6bf2b0015dc43c600/apt/manifests/key.pp:60 on node vagrant.local
==> default: Error: validate_re(): "B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8" does not match ["\\A(0x)?[0-9a-fA-F]{8}\\Z", "\\A(0x)?[0-9a-fA-F]{16}\\Z"] at /tmp/vagrant-puppet/modules-964288a1df1d89c6bf2b0015dc43c600/apt/manifests/key.pp:60 on node vagrant.local
Добавление package_name => 'postgresql-9.5'
к ::globals
, но безрезультатно.
В отчаянии даже:
exec {'Add postgresql 9.5 key':
command => '/usr/bin/wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo /usr/bin/apt-key add -',
user => 'root'
}
->
exec {'Add postgresql 9.5 apt':
command => '/bin/echo "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main" >> /etc/apt/sources.list.d/postgresql.list',
user => 'root'
}
->
exec {'apt-get update':
command => '/usr/bin/apt-get update',
user => 'root'
}
->
class { 'postgresql::globals':
...
Я заметил, что B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8
соответствует postgresql 9.3: кажется, что-то не обновляется в правильной последовательности.
Оказывается, это произошло из-за сильно устаревшего apt
марионеточный модуль.
Обновление модуля до кв 2.2.2 соответствовать postgresql 4.7.1 (который у меня уже был) работал в соответствии с документацией.