嗨,我是木偶的新手,并尝试处理样本,将文件从一个位置复制到另一个位置.有任何示例脚本吗?
例如:我的文件位于d:\ temp\test.txt,我想将此文件复制到E:\ mycopy \文件夹.
我有一个pip样式的requirements.txt文件,用于跟踪我的python依赖项,我正在将我的开发环境移动到vagrant + puppet.到目前为止,我一直在使用内置于puppet的pip提供程序来安装这样的单个包:
package {
["django", "nose"]:
ensure => present,
provider => pip
}
Run Code Online (Sandbox Code Playgroud)
是否有可能传递我的requirements.txt并让puppet在文件发生变化时保持包更新?
我是Puppet的新手,对使用依赖项有疑问.
我正在使用Puppet在Ubuntu 11.04上安装Nginx 1.0.5.它需要添加一个新的apt存储库,因为natty通常带有Nginx 0.8.在命令行,安装如下:
# apt-get install python-software-properties
# add-apt-repository ppa:nginx/stable
# apt-get update
# apt-get install nginx
Run Code Online (Sandbox Code Playgroud)
所以我写了这个Puppet脚本:
class nginx::install {
package { "nginx":
ensure => present,
require => Exec["nginx_repository"],
}
exec { "add-apt-repository ppa:nginx/stable && apt-get update":
alias => "nginx_repository",
require => Package["python-software-properties"],
}
package { "python-software-properties":
ensure => installed,
}
}
Run Code Online (Sandbox Code Playgroud)
该脚本有效,但exec {}指令每次都运行,而不是仅在实际安装nginx时运行.理想情况下,我希望"apt"命令只能在实际的nginx安装之前运行,而不是在简单地检查nginx安装时.
我对通知/订阅模型有基本的了解,但我不确定如何让nginx指令仅在实际安装nginx时发送"通知"信号.
我想通过使用木偶配方来安装apache maven,但我找不到任何关于如何执行此操作的示例.有人可以帮忙吗?Apache maven打包为tar.gz文件.我正在为木偶使用一个独立的设置.
可能在这里做了一些非常愚蠢的事情,但我找不到任何可能导致这种情况的文档.
使用Puppet设置Vagrant VM,我试图覆盖mongodb模块中的特定设置.
据我所知,该repo中的README.md语法不正确(虽然我也尝试过).
我的清单:
include mongodb
class { 'mongodb' :
port => '1111';
}
Run Code Online (Sandbox Code Playgroud)
运行时vagrant up我得到以下错误:
Duplicate declaration: Class[Mongodb] is already declared; cannot redeclare at /tmp/vagrant-puppet/manifests/mongodb.pp:5 on node www
Run Code Online (Sandbox Code Playgroud)
如果我删除配置覆盖它完美的工作,但没有理由不这样做.
为什么配置文件中的更改行被认为是Chef或Puppet中的反模式?正如我所理解的那样,这就像坏习惯.我假设这个文件编辑是以一些幂等方式和高级工具(例如augeas)完成的.
为什么使用ERB模板部署整个文件被认为是首选方法?
我不确定我是否应该使用Puppet.我通过provision.sh更新并安装.
我的Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu32"
config.vm.provision :shell, path: './provision.sh'
config.vm.network "public_network"
end
Run Code Online (Sandbox Code Playgroud)
provision.sh
apt-get update
apt-get -y install build-essential git-core python-software-properties nodejs
apt-get -y install vim
apt-get -y install curl
curl https://raw.github.com/fesplugas/rbenv-installer/master/bin/rbenv-installer | bash
Run Code Online (Sandbox Code Playgroud)
现在我需要在顶部的〜/ .bashrc中添加以下内容.或者我可以准备一个文件.bashrc并用〜/ .bashrc替换它
export RBENV_ROOT="${HOME}/.rbenv"
if [ -d "${RBENV_ROOT}" ]; then
export PATH="${RBENV_ROOT}/bin:${PATH}"
eval "$(rbenv init -)"
fi
Run Code Online (Sandbox Code Playgroud)
然后运行source .bashrc
然后运行以下命令.
rbenv install 2.0.0-p247
rbenv rehash
gem install bundler
bundle
sudo apt-get install libpq-dev
gem install pg -v '0.15.0'
Run Code Online (Sandbox Code Playgroud) 希望这是一个快速回答的问题,我正在尝试使用puppet在AWS上配置一个框,其中一个步骤涉及从需求文件中进行pip安装.像这样: -
/usr/local/venv/ostcms/bin/pip install -r /vagrant/requirements.txt
Run Code Online (Sandbox Code Playgroud)
该步骤基本上失败,因为它无法找到需求文件中的任何软件包,但是当我打开AWS框的安全组以允许"所有流量"时,pip步骤有效.
我正在尝试找到pip使用的端口,所以我基本上可以拥有该端口,http和ssh在盒子上打开,从此过上幸福的生活.
我使用PowerShell脚本来设置一些环境变量 -
$env:FACTER_Variable_Name = $Variable_Value
Run Code Online (Sandbox Code Playgroud)
FACTER用于在puppet脚本中使用它们.
我的问题是 - 变量名和变量值都是动态的,并从文本文件中读取.
我正在尝试使用
$env:FACTER_$Variable_Name = $Variable_Value
Run Code Online (Sandbox Code Playgroud)
但是$是不可接受的语法.当我用双引号括起来时,变量值不会被传递.任何建议如何动态使用它.
提前致谢
我也有关于启动Puppet Dashboard UI的问题,下面是我的配置文件.请有人帮我解决这个问题.
我得到的错误:
[Thu Aug 20 05:25:09 2015] [error] [client 192.168.XXX.XXX] Directory index forbidden by Options directive: /usr/share/puppet-dashboard/public/
下面是我的VirtualHost文件.
# UPDATE THESE PATHS TO SUIT YOUR ENVIRONMENT
#LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-2.2.11/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-5.0.15
PassengerRuby /usr/bin/ruby
# you may want to tune these settings
PassengerHighPerformance on
PassengerMaxPoolSize 12
PassengerPoolIdleTime 1500
# PassengerMaxRequests 1000
PassengerStatThrottleRate 120
#RailsAutoDetect On
Listen 3000
<VirtualHost *:3000>
ServerName puppetma.domain.net
ServerAlias puppetma
DocumentRoot /usr/share/puppet-dashboard/public/
<Directory /usr/share/puppet-dashboard/public/>
Options None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/httpd/puppet-dashboard_error.log
LogLevel warn …Run Code Online (Sandbox Code Playgroud) puppet ×10
vagrant ×3
pip ×2
python ×2
apache ×1
chef-infra ×1
dashboard ×1
installation ×1
nginx ×1
powershell ×1
recipe ×1
ruby ×1
tar ×1
ubuntu ×1
ubuntu-11.04 ×1