我有以下exec将 Linux (CentOS 6) 主机加入 Active Directory 域的内容。在 bash 终端以 root 身份运行时,它运行成功并且主机正确加入 AD 域。
但是,在 puppet 中运行时,该net ads join命令失败并显示:
无法加入域:无法为机器帐户设置密码 (NT_STATUS_ACCESS_DENIED)
这是执行
exec { 'adjoin':
command => "kinit adjoin@AD.EXAMPLE.COM -k -t /etc/krb5.keytab && net ads join createcomputer='Machines/Servers/Linux Servers' osName='${operatingsystem}' osVer=${operatingsystemrelease} -k",
unless => "net ads testjoin -k | grep -q 'Join is OK'",
provider => shell,
user => root,
path => '/usr/sbin:/usr/bin:/sbin:/bin',
require => [
File['/etc/krb5.conf'],
File['/etc/krb5.keytab'],
],
logoutput => true,
}
Run Code Online (Sandbox Code Playgroud)
我试过使用和不使用provideranduser …
根据这个 IBM 页面,
RAID 级别 x0 允许在阵列中使用更多物理驱动器。这样做的好处是更大的逻辑驱动器、更高的性能和更高的可靠性。
因此,您可以将两个 RAID 0 阵列跨越到一个 RAID 0 阵列中,而不是使用带有四个驱动器的单个 RAID 0 阵列。这会带来性能提升吗?我猜不,它不会有任何区别,但我想在完全排除它之前进行检查。或者 IBM 是说 RAID 00 提供性能提升只是因为它允许您在单个逻辑阵列中放置 16 个以上的驱动器?
我正在为四个 SSD 驱动器购买一个LSI 9260-8i RAID 控制器,它支持 RAID 级别 00。我们都是为了在这个特定的应用程序中获得最佳的 IO 性能,因此 RAID 0。
我有一个脚本,实际上只需要在服务器上运行一次,即在部署时,但认为最好让 Puppet 管理它。该脚本重新映射了与本地系统用户冲突的几个旧用户 ID。
我检查的方法是 gopher 用户的默认 uid 是否为 13。如果是,那么我需要运行我的重新映射脚本。
exec { "change_uid":
command => "/script/to/run.sh",
provider => 'shell',
path => [ "/bin", "/sbin", "/usr/bin", "/usr/sbin", "/usr/local/bin", "/usr/local/sbin" ],
onlyif => "test `/usr/bin/id -u gopher` -eq 13; echo $?",
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了上述onlyif检查的几种不同排列,但是 exec 总是在代理上被解雇。
当我直接在命令行中运行该命令,它返回0或1,这可能涉及到的事实,庆典返回0,当真正和1时,假的,但我认为它更可能是我误解的方式onlyif工作.
当 gopher 的 uid=13 时,我怎么能有这个 exec 火?我愿意采用其他方法来实现我在这里尝试完成的工作。
更新
我放弃了回声部分。最终的工作解决方案是:
exec { "change_uid":
command => "/script/to/run.sh",
path => [ "/bin", "/sbin", "/usr/bin", "/usr/sbin", "/usr/local/bin", "/usr/local/sbin" ],
onlyif => "test `id -u …Run Code Online (Sandbox Code Playgroud) 嗨,有人可以帮助我理解这一点。
在 Centos 6.2 上,它的内核显示为 2.6.32-220.el6.x86_64
而在 Ubuntu 12.04 上它显示为3.2.0-23-generic.
3.0 内核是最新的内核之一,Ubuntu 正在使用它,而 Centos 使用的是旧内核。为什么会这样?
旧内核能否提供新内核所能提供的所有新功能?他们为什么不升级到3.0?