簡體   English   中英

評估資源聲明時出錯,未知資源類型:“ vcsrepo”

[英]Error while evaluating a Resource Statement, Unknown resource type: 'vcsrepo'

我正在使用puppet部署我的代碼。 我正在嘗試從git repo克隆代碼

vcsrepo { "/home/$server_admin/public_html":
        ensure   => latest,
        owner    => "$server_admin",
        group    => "$server_admin",
        provider => git,
        require  => [ Package["git"] ],
        source   => "$server_gitrepo",
        revision => "$server_gitbranch",
    }

在客戶端計算機上執行腳本時。

Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Evaluation Error: Error while evaluating a Resource Statement, Unknown resource type: 'vcsrepo' (file: /etc/puppetlabs/code/environments/production/modules/alpha/manifests/source.pp, line: 32, column: 4) on node

注意:git已經安裝在客戶端計算機上

該錯誤正在Puppet服務器上報告。 它與客戶端上是否安裝了Git無關。 實際上,它與Git無關。

Puppet抱怨-實際上,很明顯-不能識別您要使用的vcsrepo資源類型。 那的確不是內置資源類型,因此,如果您沒有使用該名稱編寫自定義類型或未從模塊中獲取自定義類型,則Puppet不會知道您在說什么。

很可能您正在尋找puppetlabs / vcsrepo模塊,該模塊確實提供了該名稱的類型,但是我們無法確定。

為了使用vcsrepo

為了讓我測試您的設置,我使用了puppet-learning-vm來設置沙箱:

$ vagrant up
$ vagrant ssh
$ sudo su -
# puppet --version
6.0.5

可使用以下方法檢查所有已安裝的模塊:

# puppet module list --environment production

為了檢查您的模塊,可以運行一個模塊(如果Puppet在您正在運行的環境中未找到該模塊-我想是production -您將得到您提到的錯誤):

# puppet module list --environment production  2> /dev/null | grep vcsrepo

要從添加一個模塊鍛造 ,你應該運行(在我的情況,尋找模塊默認存儲庫被配置到localhost ,所以我不得不提供完整路徑forge.puppet.com ):

# # puppet module install --module_repository=https://forge.puppet.com puppetlabs-vcsrepo
Notice: Preparing to install into /etc/puppetlabs/code/environments/production/modules ...
Notice: Downloading from https://forge.puppet.com ...
Notice: Installing -- do not interrupt ...
/etc/puppetlabs/code/environments/production/modules
└── puppetlabs-vcsrepo (v3.0.0)

現在,搜索本地安裝的模塊,您應該能夠看到已安裝的模塊:

# puppet module list --environment production  2> /dev/null | grep vcsrepo
└── puppetlabs-vcsrepo (v3.0.0)

從現在開始,您可以使用類vcsrepo (由模塊puppetlabs-vcsrepo )。 要了解一點點它的工作原理,模塊實際上是克隆/從中檢索forge和安裝於一體的modulepath

# puppet config print modulepath
/etc/puppetlabs/code/environments/production/modules:/etc/puppetlabs/code/modules:/opt/puppetlabs/puppet/modules
# find /etc/puppetlabs/code/environments/production/modules -type d -name vcsrepo | grep -v lib | grep -v spec
/etc/puppetlabs/code/environments/production/modules/vcsrepo

安裝它的另一種方法是使用r10kpuppet code deploy (內部使用r10k ,這兩種解決方案都使用Puppetfile ,通常都位於/etc/puppetlabs/code/environments/production/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM