Puppet默认将日志记录写入syslog.这是为什么?大多数软件都写入一些单独的日志文件.我检查了文档,并提到您可以写入日志文件,但有人提到"通常不使用它".这是个坏主意吗?
跟踪木偶记录的典型设置是什么?在/ var/log/messages文件中使用grep?
我正在尝试使用vagrant来设置一个开发环境,如果它们尚未被克隆,它会自动克隆两个存储库.
我写了一个简单的脚本来克隆repos,在很多很多方法失败后让puppet直接运行git命令.出于某种原因,我认为这种方法是万无一失的,但事实证明我是一个比我想象的更好的傻瓜.
exec {"load-repos":
command =>"/bin/bash /vagrant/manifests/modules/scripts/clone_repos.sh",
require => Package["git-core"],
}
Run Code Online (Sandbox Code Playgroud)
这是脚本:
#!/bin/bash
if [ ! -d /vagrant/repo-one-dest ]; then
git clone git@example.com:/repo-one.git /vagrant/repo-one-dest
fi
if [ ! -d /vagrant/repo-two-dest ]; then
git clone git@example.com:/repo-two.git /vagrant/repo-two-dest
fi
exit
Run Code Online (Sandbox Code Playgroud)
私钥设置正确.当我登录vm并手动运行时bash clone_repos.sh,一切正常.无论我多少次重新加载流浪汉并让木偶做它的事情,repos永远不会通过exec加载.我错过了什么?
我正在我的公司中设置一些服务器配置,我们有一些内部存储库,通过bzr运行我需要得到的.我想使用puppet-vcsrepo将它们拉进来,我发现它有一种方法可以使用密钥文件来获得我们想要的东西.最好的方法是什么?
我可能会为我们每个人创建一个用户帐户,但我是否必须将我的私钥作为文件放入puppet然后将其转移?如何管理puppet中的密钥,以便我可以在不使用用户名和密码的情况下检出存储库ssh?
以下是信息的链接:https://github.com/puppetlabs/puppetlabs-vcsrepo/blob/master/README.BZR.markdown
它说用木偶管理密钥,但我无法找到我需要知道的东西才能正确管理密钥.
我有一个本地Puppet安装,我已经完成了:
# puppet module install puppetlabs/apt
Preparing to install into /etc/puppet/modules ...
Downloading from http://forge.puppetlabs.com ...
Installing -- do not interrupt ...
/etc/puppet/modules
??? puppetlabs-apt (v1.1.0)
??? puppetlabs-stdlib (v3.2.0)
Run Code Online (Sandbox Code Playgroud)
我还有以下nodes.pp要申请的内容:
node default {
include stdlib
class {'apt':
always_apt_update => true,
disable_keys => true,
stage => 'setup'
}
->
apt::source { "cassandra":
location => "http://debian.datastax.com/community",
release => "stable",
repos => "main",
key => "B999A372",
key_source => "http://debian.datastax.com/debian/repo_key",
include_src => false
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试应用它时,我得到:
# puppet apply nodes.pp
err: Could …Run Code Online (Sandbox Code Playgroud) 我在CentOS和Redhat运行木偶代理.我想看看它的日志文件但找不到它.在这些操作系统中,我在puppet.conf中明确指定了logdir =/var/log/puppet,但在检查此目录时,它是空的.
请注意,我为Ubuntu和SUSE做了类似的事情并且运行良好.这个问题只发生在Redhat和CentOS上.知道在这些情况下在哪里查找日志文件?
谢谢,亨利
所以基本上我的问题与这个问题非常相似:
Vagrant + Puppet:无法使用私有存储库运行composer install
我试图让作曲家使用puppet在Ubuntu 12.04盒子上安装已部署的应用程序.
我尝试在作曲家运行中安装的其中一个软件包需要部署密钥.作为puppet运行的一部分,我已经将部署密钥(私有,公共和授权以及known_hosts)复制到vagrant用户主目录(/home/vagrant/.ssh/)
这是我的问题与引用的问题的不同之处在于安全性不是问题,也不是这个版本的多个操作系统兼容性所以我很乐意将密钥复制到框中,我已经完成了......
我还在用户.profile中加载了这个密钥,这样如果我进入机器我可以运行一个作曲家安装,一切运行都很好.问题是我希望将应用程序作为puppet运行的一部分进行安装,并且我正在努力使其工作(一切都安装,直到它到达需要部署密钥的一个包).
我的composer.json目前包含这个(当前尝试让它工作):
"repositories": [
{
"type": "vcs",
"url": "ssh://git@bitbucket.org/account/subrepo.git",
"options": {
"ssh2": {
"username": "git",
"pubkey_file": "/home/vagrant/.ssh/key.pub",
"privkey_file": "/home/vagrant/.ssh/key"
}
}
}
],
Run Code Online (Sandbox Code Playgroud)
我的木偶运行使用vcsrepo(它允许你传入一个键)从git中拉出回购:
vcsrepo { "/var/www/site.dev":
require => [ File["/home/vagrant/.ssh/key"] ],
ensure => present,
owner => vagrant,
provider => git,
source => "ssh://git@bitbucket.org/account/site.git",
revision => 'master',
identity => '/home/vagrant/.ssh/key',
}
Run Code Online (Sandbox Code Playgroud)
这部分工作正常但是当我运行如下的composer install时,它会在它击中composer.json中引用的包时死掉:
composer::exec { 'site-composer-run':
cmd => 'install',
cwd => '/var/www/site.dev',
require => [
Class['composer'],
Vcsrepo["/var/www/site.dev"]
]
} …Run Code Online (Sandbox Code Playgroud) 我正在寻找一些关于如何在编写新的木偶模块时提高工作效率的最佳实践.我的工作流程现在看起来像这样:
在我完成所有错误/错误之后:
这太慢了......我怎样才能让这个工作流程变得更快?
我否认为傀儡编写测试.我还有什么其他选择?
我有Vagrant设置和运行CentOS 6.5 x64,它运行良好.在这一个VM中运行多个站点没有问题.所有站点都在/ var/www/public文件夹中运行,但从/ var/www/html运行的PhpMyAdmin除外.我正在尝试使用vagrant共享来访问正在运行的任何vhost站点.问题是vagrant共享只显示/ var/www/html文件夹的内容.
为了获得对我新创建的/ var/www/public文件夹的访问权限,我还需要做些什么吗?我已经尝试在另一台机器上编辑hosts文件,看看我是否可以将我分配给这些网站的任何网址转发到当前时髦的"流浪汉共享"地址,但这不起作用.我个人对我接下来要做的事情感到茫然.
这是我的基本设置.Vagrant版本1.5.4,VirtualBox版本4.3.8,Windows 7 x64,PuPHPet配置文件,但在下载后为添加的vhosts,ssh配置,mysql和bash文件进行了高度自定义.
希望其他人也可能遇到这个问题.有没有人有一个好转的方向?
感谢大家,
c0p
我在自己的问题上取得了重大进展.我正在做的是允许从我的Vagrant机器访问人员的异地.我并不需要他们一直都能完全访问,而只是按照原样查看内容并通知我他们可能需要的任何更改.你知道,标准开发者的东西.所以这就是我想出的.
一般地研究网络我遇到了这个链接:https: //groups.google.com/forum/#!topic/vagrant-up/IcEl9-V9wsU
这家伙正在运行Nginx并且看起来像我一样问同样的问题但使用不同的网络服务器.如果您遇到与Nginx类似的事情,请查看该页面.他确实有答案.我对Nginx一无所知,但仍然能够推断出我需要的东西.
所以我从那个页面得到的是,一旦他从Vagrant网站收到了不寻常的链接,他就迅速编辑了Nginx的配置文件并重新启动了网络服务器.现在,疯狂的网址指向虚拟主机文件位置并导致他想要显示的页面实际显示,而不只是显示默认的"欢迎"页面.
我想了一会儿,决定编辑我自己的配置,看看会发生什么.
我正在运行CentOS所以我编辑了/etc/httpd/conf/httpd.conf文件.
在这个文件的一半左右有一条注释#Listen 80行.紧接着这一行(或者如果你想要的话给它一个空间),我补充说:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin some_dude@home.com
DocumentRoot /var/www/public/sitename
ServerName hungry-lovebird-7142.vagrantshare.com
ServerAlias hungry-lovebird-7142
ErrorLog /var/www/www.sitename.dev-error_log
CustomLog /var/www/www.sitename.dev-access_log common
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我已将DocumentRoot指向我要访问的站点的文件夹,并将ServerName和ServerAlias设置为vagrant共享链接.然后我保存了文件并用sudo service httpd restart重新启动了Apache
然后我跳回到Firefox(Windows 7)并刷新了我在编辑此文件之前已经去过的oddball vagrantshare.com页面.它实际上提取了我在httpd.conf文件中给出的sitename文件夹的内容.所以它有效!Friggin很酷!
我遇到的唯一问题是我在重启Apache时收到此警告:
Stopping httpd: [ OK …Run Code Online (Sandbox Code Playgroud) 我们有一个Vagrant设置运行Ubuntu 12.04作为我们团队中的客户操作系统,主机操作系统是Windows 7或8.我希望能够获得Windows主机的主机名和在安装过程中将其附加到Vagrant主机名,例如
config.vm.hostname = <windows hostname>-web
Run Code Online (Sandbox Code Playgroud)
这是因为我们有几个开发人员从他们的本地开发机器连接到外部服务,如果我们都设置了相同的主机名(因为Vagrant文件是源控制的,并且每个人都一样),那么在这些外部服务的日志中我们可以区分谁向服务提出了什么要求.我想如果我们能够从主机操作系统动态获取主机名,那么识别在每台开发人员机器上运行的各个客户操作系统是一种好方法.
这是可能的,如果是这样,实现它的最佳方法是什么?
我的目标是拥有一个或两个节点,以及一个puppetmaster.我使用bash脚本为每个节点配置puppetlabs存储库并安装最新版本的puppet和/或puppetmaster.但每次我尝试puppet agent --test在节点上运行时,它都会返回此错误:
root@vm:~# puppet agent --test
Error: Could not request certificate: Connection refused - connect(2)
Exiting; failed to retrieve certificate and waitforcert is disabled
Run Code Online (Sandbox Code Playgroud)
puppet cert list显示没有证书等待在puppetmaster上批准.iptables --list 没有显示防火墙规则.难道Vagrant/Virtualbox无法弄清楚如何处理8140端口?错误说"连接被拒绝",所以我认为这是一个防火墙问题.但是没有防火墙......
那么,我搞砸了哪里?
这是我的Vagrantfile:
Vagrant.configure("2") do |config|
config.vm.define :puppetmaster do |puppetmaster|
puppetmaster.vm.box = "ubuntu-server-12042-x64-vbox4210-nocm"
puppetmaster.vm.box_url = "http://puppet-vagrant-boxes.puppetlabs.com/ubuntu-server-12042-x64-vbox4210-nocm.box"
puppetmaster.vm.network :private_network, ip: "192.168.77.1"
#puppetmaster.vm.network :forwarded_port, guest: 80, host: 20001
#puppetmaster.vm.network :forwarded_port, guest: 443, host: 24431
#puppetmaster.vm.network :forwarded_port, guest: 22, host: 20022
puppetmaster.vm.hostname …Run Code Online (Sandbox Code Playgroud) puppet ×10
vagrant ×5
git ×2
virtualbox ×2
apache ×1
automation ×1
bash ×1
bazaar ×1
centos ×1
composer-php ×1
deployment ×1
host ×1
logging ×1
private-key ×1
puphpet ×1
redhat ×1
repository ×1
ssh ×1
syslog ×1
ubuntu ×1
vagrantfile ×1
vhosts ×1