微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以用Puppet运行shell内置命令吗?

我希望〜/ .bashrc在改变其内容时将成为源码.我用这样的东西创建了一个bashrc类:
file { "/root/.bashrc":
    ensure  => present,owner   => root,group   => root,mode    => 0644,source  => "puppet:///bashrc/root/.bashrc"
}

exec { "root_bashrc":
    command     => "source /root/.bashrc",subscribe   => File["/root/.bashrc"],}

但是如你所知,source是一个shell内置命令,运行代理时出现以下错误

# puppet agent --no-daemonize --verbose
notice: Starting Puppet client version 2.7.1
info: Caching catalog for svr051-4170
info: Applying configuration version '1311563901'
err: /Stage[main]/Bashrc/Exec[root_bashrc]/returns: change from notrun to 0 Failed: Could not find command 'source'
notice: Finished catalog run in 2.28 seconds
notice: Caught INT; calling stop

有没有办法解决这个问题?

在Puppet中重新获取新的.bashrc是没有意义的,因为它将在子shell中运行,并且更改不会传播到您当前的shell(我认为,这是您尝试做的事情).你不能做你想做的事(我想).

原文地址:https://www.jb51.cc/bash/385631.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐