Ansible:如何以其他用户身份克隆存储库

2024-03-16

我正在尝试使用 Ansible 编写部署规则。其中一些步骤是:

  1. 更新和升级服务器
  2. 创建一个名为 Harry 的用户
  3. 添加公钥和私钥到 Harry
  4. 从 bitbucket.org 克隆 Git 存储库

我想将存储库克隆为harry用户在他的主目录中(这就是我复制它的公钥和私钥的原因)。问题是无法指定 git clone 执行时必须使用的用户。因此,Ansible 尝试以 root 身份克隆存储库,但失败了,因为他无权访问存储库。

你如何解决这个问题?


根据 Ansible 的文档权限提升 http://docs.ansible.com/ansible/become.html,Ansible 在成为非特权用户方面受到限制,因为它向 Harry 暴露了安全漏洞。

使用 Ansiblegit http://docs.ansible.com/ansible/git_module.html模块中,您可以使用以下命令指定使用来自特权 Ansible 用户的 Harry 私钥key_file参数,并使用become_user允许将克隆文件的所有权授予 Harry。例如:

- name: Clone bitbucket repo
  git:
    repo: [email protected] /cdn-cgi/l/email-protection:your-repo.git
    dest: /var/www/
    version: master
    accept_hostkey: yes
    key_file: /home/harry/.ssh/id_rsa
  become: yes
  become_user: harry
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ansible:如何以其他用户身份克隆存储库 的相关文章

  • Git 版本控制中忽略父目录

    如何忽略父目录 gitignore 我尝试了这种模式 但似乎它们不起作用 如果您想忽略某个文件夹但不想修改现有的 gitignore 请将 gitignore 放入仅包含星号的文件夹中 下面是一个快速的 BASH 示例 用于完成 idea
  • 从 git 签出后 nuget dll 丢失

    I have a C solution containing different projects On those projects I have some normal nuget packages like Newtonsoft Js
  • 获取签出修订版的 git 标签?

    我正在做 git tag current tag example to test task git checkout tag example to test task HEAD is now at 75fdde3 commit commen
  • Git 显示更改后的相同文件

    当我似乎无法弄清楚更改时 Git 向我显示整个文件已更改 这是 cygwin git 但它也发生在 msysgit 中 git version git version 2 1 1 diff lt git show HEAD File cs
  • 如何列出 Git 1.7+ 中的所有远程分支?

    我试过了git branch r 但这仅列出我在本地跟踪的远程分支 如何找到我没有的列表 命令是否列出对我来说并不重要all远程分支或仅那些未跟踪的分支 For the vast majority 1 of visitors here th
  • 由于合并而不允许 git revert 但未给出 -m 选项

    我正在尝试使用 revert 命令恢复到 git 中的某个 哈希 号 我正在使用以下命令 git revert c14609d74eec3ccebafc73fa875ec58445471765 但是 我得到以下返回 错误 提交 c14609
  • git-svn --忽略路径

    我现在在 git svn 的 ignore paths 选项上挣扎了几个小时 试图从大型存储库中仅获取某些标签 我想在 dev 处开始获取 看起来像 gt svn ls http 192 168 0 2 svn repo corporati
  • 判断 Git 提交是否是合并/恢复提交

    我正在编写一个脚本 需要检查特定提交是否是合并 恢复提交 我想知道是否有 git 技巧 到目前为止我想到的 我绝对不想依赖这里的提交消息 是检查HASH 2看看我是否没有收到错误 是否有更好的方法 判断某个东西是否是合并很容易 这是不止一位
  • 使用 Git 的 Spring Cloud 配置服务器 - 无法克隆或签出存储库连接超时

    我正在使用 GIT 在 Spring Cloud Config Server 上进行 POC Spring Boot 1 5 3 RELEASE 爪哇1 8 弹簧工具套件https github com kishornpatil https
  • Git:结帐而不运行结帐后挂钩

    我有一个我喜欢的结帐后挂钩 大多数时候 但有时我知道运行它会浪费时间 或者 因为它会删除并重建我的开发数据库 所以我不希望它去做它的事情 有没有跳过钩子的 git 选项 公平地说 我已经开始寻找一个了 我认为没有命令行选项可以完成您想要的操
  • Git - 推送到远程存储库中的远程跟踪分支

    当简单地做git push到远程存储库 其master分支得到更新 对于非裸存储库来说 这是不希望出现的情况 最近的 Git 版本显示的警告消息清楚地表明了这一点 我希望能够推送到远程存储库 并拥有其之一远程追踪分支进行更新 稍后 当我登录
  • 为什么cherry-pick总是会导致合并冲突?

    我正在从发布分支中挑选特定的提交到我的本地工作副本中 每次我从发布分支中挑选一个提交时 我都会遇到必须解决的合并冲突 即使更改看起来微不足道 例如 const char kApplicationVersion Develop const c
  • 节点项目的 Azure git 部署失败

    我正在尝试将我的项目部署到azure 它正在失败 这些是我采取的步骤 git init git config core longpaths true git add git commit m initial commit 所有这些都有效 我
  • 如何修复树与树之间的 Git 错误断开链接?

    我的事务被中断 当我再次尝试时 我遇到了空或损坏的对象错误 在另一个问题之后 我删除了所有空文件 当我运行时 git fsck full 我收到这个错误 Checking object directories 100 256 256 don
  • git 可以与 Xcode 集成吗?

    有没有办法将 git 存储库与 Xcode 内置的 SCM 功能一起使用 Xcode 4 原生支持 git WWDC 2010 上的开发者工具国情咨文演讲 在这里了解更多 Xcode 4 中的新增功能 http developer appl
  • Git 无效的修订范围 Symfony2 Composer 外部包

    RuntimeException Failed to execute git log 18efcf67d236d5bbf46ac67820250dffd0474b6e 94e2146f525fa1367e15646fa273e5b34f92
  • git 预提交钩子格式代码 - Intellij/Android Studio

    本要点展示了如何在预提交时使用 Eclipse 格式化程序自动格式化 Java 代码 Source https gist github com ktoso 708972 https gist github com ktoso 708972
  • Git 不断提示我输入密码

    我已经使用 Git 一段时间了 但是不断要求输入密码开始让我感到厌烦 我使用的是 Mac OS X 和 GitHub 并且按照 GitHub 的说明设置了 Git 和我的 SSH 密钥设置 Git 页面 http help github c
  • 运行“git apply”时出错

    当我尝试时 您能否告诉我如何解决 补丁不适用 错误 git 应用补丁 git apply 0001 my patch error patch failed test xml 114 error text xml patch does not
  • 忽略 git 中的本地配置文件

    Rails 应用程序中有一些本地文件 属于我们存储库的一部分 我希望 git 忽略它们 基本上 我希望 git 忽略我对 config environments 目录和 config application rb 文件中的任何内容所做的所有

随机推荐

  • 部署在k8s上的react应用程序的问题

    我对使用创建的简单反应应用程序有疑问npx create react app react app 一旦部署在 k8s 上 我得到了这个 Uncaught SyntaxError Unexpected token lt 然而 如果我愿意kub
  • 如何获取C指针数组的长度? [复制]

    这个问题在这里已经有答案了 可能的重复 函数参数中数组的长度 https stackoverflow com questions 8269048 length of array in function argument 有没有像Java c
  • Neo4j Cypher:仅当结束节点存在时才创建关系

    对于以下 Cypher 语句 start n node types id typeId g node groups id groupId create unique n lt has type unit props has group gt
  • ActiveMQ JMS XA Atomikos - 事务未启动错误

    情况是我们想要使用 XA 事务来协调 ActiveMQ 和 Hibernate Sql Server 2008 之间的活动 我们正在使用 春季3 0 5 休眠3 6 2 ActiveMQ 5 5 0 原子3 7 我们看到与尚未启动的事务相关
  • 使用 Symfony2 配置类,如何定义其子节点没有键的数组节点?

    使用配置类 如何定义没有数字键的数组节点 数组的子项不代表进一步的配置选项 相反 它们将是一个无法选择性覆盖的列表 只能作为一个整体进行覆盖 到目前为止我有 public function getConfigTreeBuilder tree
  • 使用 Cython distutils 时如何删除文档字符串?

    如果我手动调用 cython 我可以删除文档字符串 例如 cython D mmod py 但是当我尝试使用设置实用程序时 我无法传递该 D 参数 setup py from distutils core import setup from
  • chai 未在 Karma-mocha 中定义

    我正在使用 mocha phantomjs 配置成功运行我的测试用例 现在我正在使用 Karma 启动器运行这些测试 但我明白了这个问题Chai is not defined 这是我的配置文件 module exports function
  • Vimomnicomplete 和系统 Python 的问题

    我已经设置了 Vim python version说没关系 我的 vimrc包含 filetype plugin on set ofu syntaxcomplete Complete autocmd FileType python setl
  • Python 中时间序列的时间分解

    我正在尝试找到一个能够对时间序列进行时间分解的包 R 中有一个名为 tempdisagg 的包 https journal r project org archive 2013 RJ 2013 028 RJ 2013 028 pdf htt
  • .NET Web API HttpResponseMessage 模式?

    所以我看到了 Web API 2 控制器的返回HttpResponse和实际的物体 例子 public HttpResponseMessage Get string id var app apps Single c gt c Id id r
  • 将 RGB 转换为 sRGB?

    我正在尝试将 RGB 转换为感知均匀的色彩空间 CIELAB 维基百科指出 首先必须将 RGB 或 CMYK 值转换为特定的 绝对色彩空间 例如 sRGB 或 Adob e RGB 此次调整将 与设备相关 但转换产生的数据将是 独立于设备
  • PowerShell 将 Char 数组转换为字符串

    我已经阅读了在 PowerShell 中将字符数组转换为字符串的各种方法 但它们似乎都不适用于我的字符串 我的字符串的来源是 ComputerName 6WMPSN1 WarrantyURL http www dell com suppor
  • Liquibase 包含上下文

    我需要将文件包含在databaseChangeLog 中 但这些文件可能不存在 具体取决于安装 我的想法是使用类似包含上下文的内容 因此 Liquibase 仅在给出适当的上下文时尝试打开文件
  • 在 Android Studio 中调试时可以退回到上一个断点吗? (丢掉框架)

    我希望能够执行我刚刚跨过的上一个断点 我知道 Android Studio 是基于 Intellij Idea 的链接在这里 https stackoverflow com questions 22867491 how to step on
  • 如何为 iFrame 按钮单击父页面和 iFrame 位于不同域的位置调用窗口 onunload 事件

    我有一个可以打开 iFrame 的按钮 位于 xyz 域中 iFrame 加载驻留在另一个域中的页面 说 lmn templateSelectionFrame get 0 contentWindow location href url ur
  • 如何在Windows上构建GDB

    如何在 Windows 上从源代码构建 GDB GNU 调试器 我需要构建它才能使用 Python 支持进行构建 我无法使用随 Cygwin 一起发布的版本 因为它在 Windows 上解释反斜杠时出现问题 构建需要哪些工具链 GnuWin
  • 如何在storm中注册kryo序列化器实例?

    我拼命尝试配置序列化器实例以在我的风暴拓扑中使用 Storm 文档指出 有两种注册序列化器的方法 1 The name of a class to register In this case Storm will use Kryo s Fi
  • ARKit – 有没有办法知道物体在与 ARCamera 相关的空间中的位置?

    我在 ARKit 的屏幕上有一个物体 我想知道它与相机方向之间的水平角度 或者至少该物体位于屏幕的左侧 中心或右侧 绝对 很好 首先 我们需要了解ARKit ARKit 对象不在actual空间并基于相机所看到的内容 相机并不完美 你会注意
  • Eclipse Juno:如何更改选项卡颜色?

    不幸的是 最新的 Eclipse 插件更新放弃了 Inigo 安装了 Juno 我花了很多时间才使它看起来像以前的版本 但我无法设法更改蓝色选项卡颜色 有什么想法这是哪个设置或CSS吗 更新 有一些设置可以更改颜色 但是这些设置不会产生任何
  • Ansible:如何以其他用户身份克隆存储库

    我正在尝试使用 Ansible 编写部署规则 其中一些步骤是 更新和升级服务器 创建一个名为 Harry 的用户 添加公钥和私钥到 Harry 从 bitbucket org 克隆 Git 存储库 我想将存储库克隆为harry用户在他的主目