当命令:
./passenger-install-nginx-module
Run Code Online (Sandbox Code Playgroud)
运行时,它会在登录到服务器时询问一堆问题。
目的是使这个过程自动化,如果在安装过程中需要特定的答案,如何做到这一点?
在 virtio 磁盘上的 kvm 中安装 windows 2008 R2 时,似乎不支持驱动程序。即使在安装驱动程序后,我也无法将 Windows 安装到图像中。这是因为 Windows 没有将映像视为可启动的。那么如何制作一个支持virtio并且可以加入Glance的windows server 2008 R2呢?
编辑 1:添加图像
所以这里是我的问题的一些图像。这不是 0x80300001 错误,作为证据,我添加了一个图像,显示 Windows ISO 已加载到 CD-ROM 中。






编辑 2:该行为似乎只在 Ubuntu 上出现。Dyasny 确认它可以在 Fedora 上运行。
我们使用 Puppet 来管理 OpenStack 安装。OpenStack 由许多松散连接的部分组成,所有部分都通过 AMQP 进行通信。几个部分使用一个通用配置文件 ( /etc/nova/nova.conf),因此典型的服务资源如下所示:
service { 'openstack-nova-network':
ensure => running,
enable => true,
subscribe => File['/etc/nova/nova.conf'],
}
Run Code Online (Sandbox Code Playgroud)
这一切都很好。
现在我们使用 Puppet 来安装一些底层 Python 代码的修补程序。当我们替换 Python 源文件之一时,我们希望重新启动使用它的服务。通常,这与订阅的服务集完全相同
/etc/nova/nova.conf。
我希望我可以通过通知文件来利用现有的依赖项来做到这一点,就像这样......
file { '/path/to/some/file':
source => 'puppet:///.../',
notify => File['/etc/nova/nova.conf'],
}
Run Code Online (Sandbox Code Playgroud)
...但这似乎不起作用。除了notify为每个服务输入显式
条目之外,还有更好的方法来做到这一点吗?
更新
你知道,我开始怀疑我的问题并不完全清楚。我想为造成的混乱道歉,并尽量让我的要求更明确一点:
我意识到我可以使用一组显式依赖项来做到这一点,无论是作为subscribe服务的notify值还是已安装文件的值。问题是这意味着维护一个 M*N 的依赖矩阵。引入新文件意味着:
service资源,或file资源这种重复的复制粘贴工作很容易出错,尤其是当多人负责配置时。
一种选择是维护一个中央服务列表:
$services = [ service1, service2, service ]
Run Code Online (Sandbox Code Playgroud)
因为那时我可以这样做:
file { '/usr/lib/python/glance/notifier/notify_qpid.py':
notify => …Run Code Online (Sandbox Code Playgroud) 当我在 openstack 中启动实例时,它们没有获得 DHCP 租约。当我进入实例并手动配置本应分配的 IP 时。网络流畅。
使用 TCPDump,我可以看到 DHCP Offers,但它们似乎被忽略了。
我刚刚开始阅读 r10k,因为我喜欢它可以基于 Git 分支创建动态环境的事实。现在,我刚刚读到 Puppet 可以在没有 r10k 的情况下做到这一点。r10k 提供了哪些 Puppet 无法提供的功能?如果我只想要基于 Git 分支的动态基于目录的环境,我还需要 r10k 吗?
介绍
目前大约有 100 个 Puppet 代理连接到 Puppetmaster。有时,代理需要一段时间才能发现 Puppetmaster 上实施的更改。一些信息已经发现,Passenger 与 Web 服务器(例如 Apache2 或 Nginx)结合可以加速这个过程。最重要的是,根据本文档,强烈建议在生产环境中使用此类功能。
目的
目的是在 CentOS7 上安装 Nginx 并实现 Phusion 乘客支持,passenger-install-nginx-module以加速识别 Puppet-agents在 Puppetmaster 上实现的更改。
尝试
尝试 1
sudo /usr/local/share/gems/gems/passenger-4.0.56/bin/passenger-install-nginx-module --auto --auto-download 已执行并遵循安装步骤。
尝试 2
由于在尝试 1 期间未安装 Nginx 服务,因此使用yum -y install nginx.
尝试 3
谷歌搜索:"[emerg] unknown directive passenger_enabled" 表示 nginx 是在没有 Phusion Passenger 支持的情况下编译的。在这种情况下,这应该是错误的,因为passenger-install-nginx-module已经运行,并且在尝试 1 期间的安装输出表明应该已经安装了 Nginx。
尝试 4
/etc/nginx/nginx.conf
passenger_root /usr/local/share/gems/gems/passenger-4.0.56;
passenger_ruby /usr/bin/ruby;
Run Code Online (Sandbox Code Playgroud)
/etc/nginx/conf.d/puppet.conf
passenger_enabled on;
Run Code Online (Sandbox Code Playgroud)
尝试 …
如果一个变量是双引号并且它包含一个 \n
$test="hello\nworld"
file { '/tmp/hello':
content => $test
}
Run Code Online (Sandbox Code Playgroud)
然后创建一个新行:
/tmp/hello
hello
world
Run Code Online (Sandbox Code Playgroud)
问题
如果由于 hiera 输入或 regsubst 结果输入不是双引号怎么办:
$test2=hiera("hiera::input")
file { '/tmp/hello':
content => $test2
}
Run Code Online (Sandbox Code Playgroud)
结果是:
hello\nworld
Run Code Online (Sandbox Code Playgroud)
尝试解决问题
假设是双引号内容变量将解决问题。两者都不:
file { '/tmp/hello':
content => "$test2"
}
Run Code Online (Sandbox Code Playgroud)
也不:
file { '/tmp/hello':
content => "\"$test2\""
}
Run Code Online (Sandbox Code Playgroud)
解决了这个问题。后者导致:
"hello\nworld"
Run Code Online (Sandbox Code Playgroud)
第二次尝试
在 StackOverflow 上阅读此答案后尝试了另一种尝试。
层级文件
---
bla: haha\nblabla
Run Code Online (Sandbox Code Playgroud)
清单文件
$test=hiera('bla')
$quoted = regsubst($test, '(.*)', '"\1"')
file { '/tmp/hello':
content => $quoted
}
Run Code Online (Sandbox Code Playgroud)
结果是:
"haha\nblabla"
Run Code Online (Sandbox Code Playgroud) 从 PC1 存储库在 Centos 上全新安装(尝试了 6 和 7)。开始puppetserver咀嚼我的 RAM 几分钟然后失败并出现此错误:
Exception in thread "main" java.lang.IllegalStateException: Cannot initialize master with partial state; need all files or none.
Found:
/etc/puppetlabs/puppet/ssl/private_keys/puppet.novalocal.pem
Missing:
/etc/puppetlabs/puppet/ssl/certs/puppet.novalocal.pem
Run Code Online (Sandbox Code Playgroud)
它似乎在错误的目录中查找公钥,因为它似乎是在其他地方创建的:
[chris@puppet ~]$ sudo find /etc/puppetlabs/ -name puppet.novalocal.pem
/etc/puppetlabs/puppet/ssl/private_keys/puppet.novalocal.pem
/etc/puppetlabs/puppet/ssl/public_keys/puppet.novalocal.pem
Run Code Online (Sandbox Code Playgroud)
我愚蠢地遵循官方文档。所以这可能意味着在那里或安装包中进行一些更正
目前我们在每个项目中都放了一个 .gitlab-ci.yml 。目前我们有 50 多个项目,每次 .gitlab-ci.yml 发生变化时,团队都必须更改所有项目的结构。是否可以拥有一个通用的 .gitlab-ci.yml?
尝试
我正在考虑避免购买带有光驱的新机器。唯一需要注意的是操作系统安装可能很麻烦——打开机箱并临时连接 DVD,与驱动器的价格相比,这通常不值得麻烦。
有没有人尝试从拇指驱动器安装操作系统?有哪些陷阱?您使用了哪些工具/指南?
还请提及您使用的硬件(主板等)
puppet ×4
installation ×2
nginx ×2
openstack ×2
automation ×1
centos7 ×1
dhcp ×1
drivers ×1
flash-drive ×1
gitlab ×1
nova-network ×1
r10k ×1
ssl ×1
systemctl ×1
ubuntu ×1