加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 18:34:17 所属栏目:安全 来源:网络整理
导读:我希望?/ .bashrc在改变其内容时将成为源码.我用这样的东西创建了一个bashrc类: file { "/root/.bashrc": ensure = present,owner = root,group = root,mode = 0644,source = "puppet:///bashrc/root/.bashrc"}exec { "root_bashrc": command = "source /ro
我希望?/ .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(我认为,这是您尝试做的事情).你不能做你想做的事(我想).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读