我正在创建一个 Chef 配方,它可以做几件事,其中包括将大量数据导入 Postgresql 数据库。
我正在使用超市“postgresql”食谱这使得我可以通过属性创建配置文件node['postgresql']['config']
。
我想在运行配方期间更新 postgresql.conf 中的配置,即在执行大导入之前设置适合大导入的值,然后在完成导入后更新这些值,以便更适合日常操作(具体来说fsync
和full_page_writes
'离开' 在导入之前并把那些 '在' 后)。
我创建了 ruby_block 资源,使我能够node.default['postgresql']['config']['fsync/full_page_write']
在导入之前和之后通过通知进行更新,但这些更改并未序列化到 postgresql.conf,我猜是因为postgresql::server_conf
已经在那个阶段运行了。
有没有什么方法可以向 postgresql cookbook 发出信号,表示我希望node['postgresql']['config']
在运行期间多次序列化?
答案1
我自己找到了答案,这个要点(https://gist.github.com/mbokman/58b826258d05f1c7bec0) 展示了我如何做到的。