【问题标题】:vim bundles are not installed by vundle exactly in Puppetvundle 没有在 Puppet 中完全安装 vim 包
【发布时间】:2013-11-06 06:21:49
【问题描述】:

我正在尝试木偶化供 CentOS 用户使用的 vundle。 Puppet 的结果是肯定的,没有任何错误信息:

notice: /Stage[main]/Devops-base-utilities::Vimconfig /Exec[install_vundle]/returns: 执行成功

但是当我检查 ~/.vim/bundle 目录时,只有 vundle 是从 git 存储库中克隆出来的。

exec命令模块如下:

exec { "install_vundle":
  user        => www,
  command     => 'vim +BundleInstall +qall',
  path        => "/usr/bin",
  provider    => shell,
  refreshonly => true,
  require     => [Package["vim-enhanced"], Exec["clone_vundle"]],
  subscribe   => File['/home/www/.vimrc.bundles.local']
}

但是vim +BundleInstall +qall可以手动启动。

【问题讨论】:

  • Vundle 的问题跟踪器是that way
  • 这不是 vundle 的问题,只是要求一种使用 Puppet 自动安装的正确方法。
  • 你能用其他命令吗?
  • 我不确定,但可能与某些环境变量有关。例如,exec 删除了某些命令可能需要的 HOME 变量 (projects.puppetlabs.com/issues/5224)。只需尝试添加environment => 'HOME=/' 看看它是否适合您。

标签: git vim puppet


【解决方案1】:

Slava 的建议对我有用!

流浪文件:

VAGRANTFILE_API_VERSION = '2'

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = 'precise64'
  config.vm.box_url = 'http://files.vagrantup.com/precise64.box'

  config.vm.provision :shell do |shell|
    shell.inline = "mkdir -p /etc/puppet/modules;
                    puppet module install -f puppetlabs-stdlib;
                    puppet module install -f puppetlabs/apt"
  end

  config.vm.provision :puppet
end

清单/default.pp:

# Update apt before installing any packages

class { "apt":
  update_timeout => 60
}

exec { "apt-update":
  command => "/usr/bin/apt-get update"
}

Exec["apt-update"] -> Package <| |>

package { "git":
  ensure => latest
}

package { "vim":
  ensure => latest
}

# Link vim profile

file { "/home/vagrant/.vimrc":
  ensure => link,
  target => "/vagrant/.vimrc",
  require => Package["vim"]
}

file { "/home/vagrant/.vim/":
  ensure => directory,
  owner => "vagrant",
  group => "vagrant",
  require => Package["vim"]
}

exec { "git vundle":
  command => "/usr/bin/sudo -u vagrant git clone https://github.com/gmarik/vundle.git /home/vagrant/.vim/bundle/vundle",
  require => [
    Package["git"],
    Package["vim"],
    File["/home/vagrant/.vimrc"],
    File["/home/vagrant/.vim/"]
  ]
}

# Install Vim packages

exec { "vundle":
  command => "/usr/bin/sudo -u vagrant /usr/bin/vim +BundleInstall +qall",
  environment => "HOME=/home/vagrant/",
  require => Exec["git vundle"]
}

.vimrc:

https://github.com/mcandre/dotfiles/blob/master/.vimrc

【讨论】:

    【解决方案2】:

    您必须提供一个cwd =&gt; 条目,因为安装会尝试在 git 克隆之间返回到 cwd,并获得拒绝权限。这没有记录。我在使用https://github.com/jdevera/parallel-vundle-installer 时发现了它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-08
      • 1970-01-01
      相关资源
      最近更新 更多