Virtual-Machines
puppet gitlab postgresql 衝突
我正在嘗試使用 postgresql 和 gitlab 設置 VM。我正在使用以下軟體包: gitlab & postgresql
這是我的init.pp
class { 'postgresql::server': ip_mask_deny_postgres_user => '0.0.0.0/32', ip_mask_allow_all_users => '0.0.0.0/0', listen_addresses => '*', ipv4acls => ['host all johndoe 10.1.1.0/24 cert'], manage_firewall => true, postgres_password => 'TPSrep0rt!', } class { 'gitlab': git_email => 'felix@psy-coding.com', git_comment => 'GitLab Performates', gitlab_domain => 'gitlab.foobar.fr', gitlab_dbtype => 'pgsql', gitlab_dbname => 'gitlab', gitlab_dbuser => 'gitlab', gitlab_dbpwd => 'gitlab', ldap_enabled => false, }
幾乎從範例中複製
但是當我嘗試配置我的虛擬機時,我總是得到
Error: Duplicate declaration: Package[postgresql-client] is already declared; cannot redeclare at /etc/puppet/modules/postgresql/manifests/client.pp:12 on node
我只是參考
postgresql::server
和 gitlab 確保postgresql-client
已安裝,所以它會抱怨嗎?
這裡的問題是,您不能在 Puppet 中定義兩個具有相同名稱的資源。
PostgreSQL 模組定義了包
$$ ‘postgresql-client’ $$這裡:https ://github.com/puppetlabs/puppetlabs-postgresql/blob/master/manifests/client.pp#L8 這裡還有 GitLab:https ://github.com/sbadia/puppet-gitlab/blob/master/manifests/setup.pp#L52
由於 GitLab 使用stdlib
ensure_packages
中的函式,因此如果在 gitlab 之前載入了 postgres,這應該可以工作,但是對於 Puppet,您不能確保(嘿,抱歉)模組載入的順序。一個適當的修復也將
ensure_packages
在 PostgreSQL 模組中使用。您可以在本地修補它,也可以通過刪除其中一個postgresql-client
包定義來解決雙重定義。