Chef infra 正在更改Chef Recipe中的目录

Chef infra 正在更改Chef Recipe中的目录,chef-infra,chef-recipe,cookbook,rhel7,Chef Infra,Chef Recipe,Cookbook,Rhel7,这是我第一次尝试写一本厨师烹饪书。我正在尝试编写一个配方,该配方将自动安装git,创建一个新目录(git\u repo/),更改到该目录,初始化为git存储库,然后在节点上运行chef client后连接到远程git存储库。我得到它来安装git并创建目录,但我不确定如何在配方中编写将目录更改为git_repo。我的密码是 包“git”do 操作:安装 结束 目录“/home/git_repo”do 模式0755 所有者“根” “根”组 行动:创建 结束 执行“更改”do 命令“sudo cd g

这是我第一次尝试写一本厨师烹饪书。我正在尝试编写一个配方,该配方将自动安装git,创建一个新目录(
git\u repo/
),更改到该目录,初始化为git存储库,然后在节点上运行chef client后连接到远程git存储库。我得到它来安装git并创建目录,但我不确定如何在配方中编写将目录更改为git_repo。我的密码是

包“git”do
操作:安装
结束
目录“/home/git_repo”do
模式0755
所有者“根”
“根”组
行动:创建
结束
执行“更改”do
命令“sudo cd git_repo”
结束
除了执行此特定操作之外,还有更好的资源类型可供使用吗?如果是这样,有人能详细说明一下吗?

资源作为属性
cwd

cwd
:运行命令的当前工作目录

要从
git\u repo/
目录作为工作目录运行命令,请使用以下声明:

执行'init'do
命令“git init”
cwd“/住宅/吉特回购”
结束
由于这很可能在第二次chef运行时失败(因为
git init
不会成功),因此您应该使用
创建
属性来创建此资源:

创建
:当文件已经存在时,阻止命令创建该文件

执行'init'do
命令“git init”
cwd“/住宅/吉特回购”
创建“/home/git\u repo/.git”
结束

一般来说,我不确定您是否真的想初始化一个空的存储库。如果您只想克隆存储库,请使用该资源。

FYI无需使用
sudo
。除非另有规定,
chef client
所做的一切都是以超级用户权限完成的。谢谢您的回答!我会考虑你说的话。