使用“文件”chef-solo 资源更新文件

2023-12-21

我正在尝试使用安装javachef-solo。问题是设置JAVA_HOME and PATH变量在/etc/profile文件。我尝试使用'file'厨师提供的资源。这是我的一些代码:

java_home = "export JAVA_HOME=/usr/lib/java/jdk1.7.0_05"
path = "export PATH=$PATH:/usr/lib/java/jdk1.7.0_05/bin"

execute "make_dir" do
  cwd "/usr/lib/"
  user "root"
  command "mkdir java"
end

execute "copy" do
  cwd "/usr/lib/java"
  user "root"
  command "cp -r /home/user/Downloads/jdk1* /usr/lib/java"
end

file "/etc/profile" do
  owner "root"
  group "root"
  action :touch
  content JAVA_HOME
  content PATH
end

但问题是content命令覆盖文件的所有内容,有没有办法在使用 Chef-solo 资源时更新文件。谢谢!

UPDATE:我找到了一些代码chef-recipe,但我不确定它到底是做什么的,代码是..

ruby_block  "set-env-java-home" do
  block do
    ENV["JAVA_HOME"] = java_home
  end
end

它是仅为该实例设置 JAVA_HOME 变量还是永久设置?有人可以帮忙吗?


Use Chef::Util::File编辑 http://rubydoc.info/gems/chef/11.2.0/Chef/Util/FileEdit。下面是我如何修改的示例.bashrc。这里的想法是我只是添加:

# Include user specific settings
if [ -f ~/.bashrc_user ]; then . ~/.bashrc_user; fi

到默认结束.bashrc所有其他修改都发生在.bashrc_user这是我食谱的一部分。

cookbook_file "#{ENV['HOME']}/.bashrc_user" do
  user "user"
  group "user"
  mode 00644
end

ruby_block "include-bashrc-user" do
  block do
    file = Chef::Util::FileEdit.new("#{ENV['HOME']}/.bashrc")
    file.insert_line_if_no_match(
      "# Include user specific settings",
      "\n# Include user specific settings\nif [ -f ~/.bashrc_user ]; then . ~/.bashrc_user; fi"
    )
    file.write_file
  end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用“文件”chef-solo 资源更新文件 的相关文章

  • 在 Ruby 中的文件中查找并替换

    我有一个用 ruby 编写的小程序 我在这里找到了一段很好的代码 用于查找和替换文件中的某些内容 但它似乎不起作用 这是代码 usr bin env ruby DOC test txt FIND M SEP n make substitut
  • 在 cygwin 和 powershell 中查看不同的 gem 列表

    我用的是gem listpowershell 和 cygwin 中的命令都显示不同的 gem 列表 Cygwin 显示 LOCAL GEMS bundler 1 2 3 json 1 7 5 minitest 2 12 1 rake 0 9
  • to_proc 方法在 Ruby 中意味着什么?

    我正在学习 Rails 并关注这个线程 https stackoverflow com questions 1961030 我被困住了to proc方法 我认为符号只是字符串的替代品 它们就像字符串 但在内存方面更便宜 如果我还缺少任何其他
  • Rails has_many 通过带有附加属性的表单

    我正在尝试创建一个表单 允许用户向活动添加 编辑 删除位置 我目前找到的所有例子要么是HABTM表单 不允许编辑存在于表单中的附加属性 has many through配置 或仅列出现有关系 下面的图片显示了我想要完成的任务 该列表将显示每
  • 使用 ruby​​ Net::SSH 通过 sudo 读取远程文件

    我必须读取我有权 sudo 读取的远程文件的内容 猫 少或尾巴 我将在 Ruby 中执行此操作 因此我认为应该使用 Net SSH 来执行此操作 该文件是一个日志文件 因此可能会很大 这是我现在正在尝试的代码 require rubygem
  • 脚本标头过早结束:媒体(与以下问题相关:rails 应用程序部署+passenger+ubuntu+apache)

    我刚刚设置了一个 linode 服务器并在其上部署了我的 Rails 3 应用程序 它已启动并正在运行 问题是某些图像没有显示在生产中 在本地 它们工作正常 我仔细检查了日志文件 生产 log 但什么也没找到 然后我检查服务器 error
  • 如何将文件中的行读入数组?

    这就是我想做的 但有一句话 lines Array new File open test txt each line lines lt lt line 可能的 执行如下操作 File readlines test txt Read 文档 h
  • 有没有办法编写一个匹配除文件夹中的文件之外的所有文件的全局模式?

    我需要编写一个文件 glob 它将匹配除特定文件夹中包含的文件之外的所有文件 例如 除了高级文件夹中包含的文件之外的所有文件 foo 我已经到达以下区域 foo 然而 这个 glob 似乎与 Ruby 中的任何文件都不匹配File fnma
  • Rails 5.2 Active Storage 添加自定义属性

    我有一个带有附件的模型 class Project lt ApplicationRecord has many attached images end 当我附加并保存图像时 我还想保存一个附加的自定义属性 display order 整数
  • 使用 Ruby 替换文件中的特定行

    我有一个如下所示的文本文件 a txt open close open open close open 我需要找到一种方法将第三行替换为 close 我做了一些搜索 大多数方法都涉及搜索该行而不是替换它 在这里不能真正做到这一点 因为我不想
  • 查找数组中 2 个缺失数字的最快方法

    这个问题的存在只是出于纯粹的好奇心 不是作业 找到在数组 1 n 中找到两个缺失数字的最快方法 因此 在相关帖子中 查找数字数组中缺失数字的最快方法 https stackoverflow com questions 2113795 qui
  • 平衡付款 - 有关获取现有买家和商家账户参考信息的文档

    我如何获得已创建的买家和商家帐户的参考 我只是找到创建买家和商家帐户的示例 我没有找到任何有关获取该信息以供重用的示例 是否有关于此的现有文档或只是 rdoc 中的内容 根据对 rdoc 的引用 我假设您在这里使用 Ruby gem 使用唯
  • Ruby `split':UTF-8 中的无效字节序列(ArgumentError)

    我正在尝试填充电影对象 但是在解析时u item文件我收到此错误 split UTF 8 中的无效字节序列 ArgumentError File open Data u item r do infile while line infile
  • 忽略 GEM,因为它的扩展尚未构建

    在我的工作和家用计算机上 我最近将 Ruby 升级到 2 3 1 使用ruby install I use chruby作为我的 Ruby 切换器 我开始在我的终端中看到这个警告 Ignoring bcrypt 3 1 11 because
  • Rails:验证字符串的最小和最大长度,但允许其为空白

    我有一个想要验证的字段 我希望该字段能够留空 但如果用户输入数据 我希望它采用某种格式 目前我在模型中使用以下验证 但这不允许用户将其留空 validates length of foo maximum gt 5 validates len
  • 将 R 与 Rsruby 集成

    我想知道是否有人有将 R 集成到 Rails 中的经验 特别是在 heroku 上 我熟悉 rsruby gem 它是 ruby 与 R 事实上的 也许是唯一的 绑定 但是有关将 R 与 Rails 集成的文档即使不是不存在 也是很少的 比
  • 使用brew时出现“错误的解释器”错误

    当我尝试运行任何 brew 命令时 出现此错误 Holger Sindbaeks MacBook Air holgersindbaek brew help bash usr local bin brew usr bin ruby bad i
  • postgres 数组字段上的 ActiveAdmin 过滤器

    我在 ActiveAdmin 中添加了以下过滤器 filter roles as select collection Model ROLES multiple true 但是当我选择过滤器值来搜索角色时 它给了我以下错误 PG Invali
  • Ruby 中的 Splat 运算符(快速排序示例)

    你好 我正在研究一些 Ruby 代码 在 Ruby 中实现快速排序 1 def qsort lst 2 return if lst empty 3 x xs lst 4 less more xs partition y y lt x 5 q
  • Cucumber 是否不需要编写单元测试?

    我对 Ruby ROR 可用的测试框架数量之多感到有点困惑 我最近看了黄瓜轨道广播 http railscasts com episodes search cucumber并发现它们非常有趣 所以我开始玩游戏 然后努力从概念上考虑在哪里进行

随机推荐

  • 如何使用 css 防止 ggplot hideOpts 消息离开屏幕

    运行下面的演示应用程序时 我遇到的问题是绘图底部的悬停消息最终从屏幕上消失 有谁知道是否有办法调整位置 使整个消息始终落在屏幕边界内 l r t b require shiny require ggplot2 library DT ui l
  • Thymeleaf 表的行跨度问题(1 个订单,N 篇文章)

    我正在为订购系统制作一个简单的 Intranet Web 视图 以显示当前正在处理的所有订单 但是我坚持使用百里香标记 public class Order private Factory factory private String or
  • WPF 应用程序的 Windows 8 平铺图标?

    各位 第一次发帖 我是 Windows 开发和 VS 的新手 在 Windows 8 1 上使用 2013 我通过以下操作创建了一个非常简单的应用程序 文件 gt 新建项目 WPF 应用程序 该应用程序运行良好 并且完全符合我的要求 我成功
  • 安装 Phonegap 时出现“shasum 检查失败”错误

    我在使用以下命令在 Mac OS 计算机上安装 PhoneGap 时遇到问题 sudo npm install g phonegap 错误信息 npm ERR Error shasum check failed for Users MYUS
  • CSS 中 > 是什么意思?

    在 IUI css 文件中 他们使用以下选择器 body gt not toolbar body gt selected true gt not 和 是什么意思 Thanks gt means 是一个子元素 http www w3 org
  • 使用 Emmet 在 Visual Studio Code 中包装 HTML 元素 [重复]

    这个问题在这里已经有答案了 我正在使用 VSC 来开发 html 页面 在 VSC 中使用 emmet 是一次很棒的体验 但我经常发现这样的情况 我必须用 div 包装一组元素 但必须在单行上使用 emmet 然后在末尾剪切粘贴结束标记 我
  • GridView 的 UpdateMethod 未触发

    我有一个 GridView 我以编程方式绑定到 ObjectDataSource 例如 ObjectDataSource risks new ObjectDataSource Risks RetrieveProjectRisk risks
  • 使用 Sass 根据背景颜色更改颜色[重复]

    这个问题在这里已经有答案了 我想设置一些 sass 颜色规则 自动为我选择字体颜色变量 我希望文本颜色取决于父 div 的背景颜色 If div background color 000 Then div p color fff 用sass
  • Linux内核:schedule()在什么进程中运行?

    当您调用系统调用时 例如fork在进程 X 中 内核被认为是在进程上下文中执行 所以 fork可以说是运行在进程X中吧 But if schedule 在同一进程中被调用 并且它不是系统调用 你会说它是作为 X 的一部分运行吗 或者它在交换
  • QT4中有QPath::Combine吗?

    我需要一种类似于 NET 的方法来安全地组合路径部分 而不必担心路径分隔符的平台细节 QT4中有这样的类和方法吗 就像是 QPath Combine 没有任何函数可以直接替代Path Combine 所以你必须自己写 您可能会以困难的方式做
  • 如何在UML中表示类实例?

    我的应用程序有一个类图 其中包含多个组合和聚合 现在我想要基于显示类实例的类图的图表 如果你愿意的话 可以拍一张快照 我需要这个 因为它有助于讨论一些功能需求 类图 1 Parent Child 实例 图 Parent Child 1
  • 查找异常的确切原因 - System.Net.Sockets.SocketException

    我尝试使用下面给出的代码将邮件发送到 SMTP 邮件服务器 但是 我收到一个错误 Error System Reflection TargetInvocationException Exception has been thrown by
  • 查找具有特定参数的函数

    如何找到具有特定参数的所有函数的名称和位置 有没有办法在全局环境 附加包和已安装包中找到它们 我猜你问这个问题只是为了不输本很好的回答 https stackoverflow com questions 14426033 range on
  • Azure Web 角色中的实体框架 DbContext

    我正在将现有 Web 应用程序 使用实体框架 5 迁移到 Azure Web 角色 数据库连接字符串正在从web config to the ServiceConfiguration cscfg files 问题是在自动生成 Model C
  • iPhone内存管理:应用程序退出时无需清理和释放保留的对象?

    以下内容是否属实 当应用程序即将退出时 不需要清理内存 通过调用释放你所有的 保留对象 因为 iPhone 操作系统会回收它的内存 当您分配给您的应用程序时 启动了它 这样更快更安全 而不是依赖应用程序来正确地 自己清理干净 你可以 通过调
  • Android:无法执行此操作,因为连接池已关闭

    我正在阅读 StackOverflow 关于这个问题的内容 但仍然没有找到解决方案 我注意到有时我的应用程序会抛出此错误 java lang IllegalStateException Cannot perform this operati
  • 光标周围的框 pygame

    在我用 pygame 制作的小游戏中 光标周围总是有一个框 其中所有颜色都会反转 例如 如果我将光标放在黑色和红色背景上 光标周围的方块将是白色和青色 这最初不是问题 因为最初的几个项目只需要键盘输入 但现在我想做一个游戏 你必须点击很多
  • bs4:“soup.title.string”在 IDLE 上不起作用,但在终端上不起作用

    Mac OS X 10 9 Python 2 7 空闲 BeautifulSoup 4安装 成功 我跟着BS4 文档 http www crummy com software BeautifulSoup bs4 doc 并正在练习一些功能o
  • 如何处理列名中的空格?

    我知道变量名称中不含空格是首选 我遇到的情况是 我需要出版质量的图表 因此轴和图例需要具有正确格式的标签 即带有空格 因此 例如 在开发过程中 我可能有名为 Pct On OAC 和 Age Group 的变量 但在我的最终图中 我需要出现
  • 使用“文件”chef-solo 资源更新文件

    我正在尝试使用安装javachef solo 问题是设置JAVA HOME and PATH变量在 etc profile文件 我尝试使用 file 厨师提供的资源 这是我的一些代码 java home export JAVA HOME u