Ansible SSH 转发似乎不适用于 Vagrant

2024-01-08

好吧,奇怪的问题。我有 SSH 转发与 Vagrant 一起使用。但我试图在使用 Ansible 作为 Vagrant 配置程序时让它工作。

我准确地找到了 Ansible 正在执行的内容,并亲自从命令行尝试了它,果然,它也失败了。

[/common/picsolve-ansible/u12.04%]ssh -o HostName=127.0.0.1 \
 -o User=vagrant -o  Port=2222 -o UserKnownHostsFile=/dev/null \
 -o StrictHostKeyChecking=no -o PasswordAuthentication=no \
 -o IdentityFile=/Users/bryanhunt/.vagrant.d/insecure_private_key \
 -o IdentitiesOnly=yes -o LogLevel=FATAL \
 -o ForwardAgent=yes "/bin/sh  \
 -c 'git clone [email protected] /cdn-cgi/l/email-protection:bryan_picsolve/poc_docker.git /home/vagrant/poc_docker' "
Permission denied (publickey,password).

但是当我运行 vagrant ssh 时,代理转发工作正常,并且我可以签出 R/W 我的 github 项目。

[/common/picsolve-ansible/u12.04%]vagrant ssh
vagrant@vagrant-ubuntu-precise-64:~$ /bin/sh  -c 'git clone [email protected] /cdn-cgi/l/email-protection:bryan_picsolve/poc_docker.git /home/vagrant/poc_docker'
Cloning into '/home/vagrant/poc_docker'...
remote: Counting objects: 18, done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 18 (delta 4), reused 0 (delta 0)
Receiving objects: 100% (18/18), done.
Resolving deltas: 100% (4/4), done.
vagrant@vagrant-ubuntu-precise-64:~$

有谁知道它是如何工作的吗?

Update:

借助于ps awux我确定了 Vagrant 执行的确切命令。

我复制了它并且 git checkout 工作了。

 ssh [email protected] /cdn-cgi/l/email-protection -p 2222 \
  -o Compression=yes \
  -o StrictHostKeyChecking=no \
  -o LogLevel=FATAL \ 
  -o StrictHostKeyChecking=no \
  -o UserKnownHostsFile=/dev/null \
  -o IdentitiesOnly=yes \
  -i /Users/bryanhunt/.vagrant.d/insecure_private_key \
  -o ForwardAgent=yes \
  -o LogLevel=DEBUG \
   "/bin/sh  -c 'git clone [email protected] /cdn-cgi/l/email-protection:bryan_picsolve/poc_docker.git /home/vagrant/poc_docker' "

从 ansible 1.5 (devel aa2d6e47f0) 最后更新 2014/03/24 14:23:18 (GMT +100) 和 Vagrant 1.5.1 开始,现在可以使用了。

我的 Vagrant 配置包含以下内容:

config.vm.provision "ansible" do |ansible|
   ansible.playbook = "../playbooks/basho_bench.yml"
   ansible.sudo = true
   ansible.host_key_checking = false
   ansible.verbose =  'vvvv'
   ansible.extra_vars = { ansible_ssh_user: 'vagrant', 
                 ansible_connection: 'ssh',
                 ansible_ssh_args: '-o ForwardAgent=yes'}

显式禁用 sudo 使用也是一个好主意。例如,当使用 Ansible git 模块时,我这样做:

- name: checkout basho_bench repository 
  sudo: no
  action: git [email protected] /cdn-cgi/l/email-protection:basho/basho_bench.git dest=basho_bench
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ansible SSH 转发似乎不适用于 Vagrant 的相关文章

  • Vagrant+Puppet puppet.module_path 不起作用

    所以我的 Vagrant 文件设置如下 VAGRANTFILE API VERSION 2 Vagrant configure VAGRANTFILE API VERSION do config config vm box hashicor
  • 使用 Ansible 将二进制文件添加到 PATH

    我正在尝试安装Kiex https github com taylor kiex版本管理器Elixir http elixir lang org install html使用 Ansible 的编程语言 这些是我为此使用的戏剧 name K
  • 在哪里可以找到config.vm.boot_timeout?

    您好 我想编辑 vagrant 中的 config vm boot timeout 因为我在启动 vagrant 时遇到问题 我在哪里可以找到 config vm boot timeout 我应该输入什么值 我在windows8 1 x86
  • 使用 ChannelExec 的命令未执行 - Jsch

    我正在使用 Jsch 在服务器中创建一个文件并执行一些命令 对于文件创建 它工作正常 但是对于命令执行 则不然 它保持状态 1 仍在处理它 并永远保持该状态 这种情况发生在 shell 执行或我尝试成为 root 时 请按照以下方法操作 p
  • 包含 contains 的 json 格式查询

    我在 ansible 中有以下 json 输出 active transaction null cores 4 hostname alpha auth wb01 active transaction null cores 4 hostnam
  • 连接到 OpenShift (Redhat Paas) mysql 实例

    我正在尝试将我的 C 应用程序与 openshift 数据库连接 但我得到了这个例外conn Open Eccezione gt MySql Data MySqlClient MySqlException 0x80004005 Unable
  • 使用 lineinfile 和 blockinfile 编辑文件还是仅使用模板复制整个文件?

    我开始使用 Ansible 编写一个剧本 为我们的应用程序部署临时环境 我试图了解对文件应用更改的最佳实践是否是在控制计算机上本地更改它们 然后将它们传播到远程服务器 或者是否应该在剧本内操作文件 通过剧本操作文件在可读性和文档方面似乎更好
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • PHPStorm - 无效的后代文件名

    我正在尝试将 Windows 7 PC 上的本地 PHPStorm 项目与 Ubuntu 服务器同步 当我尝试任何类型的连接 例如 测试 SFTP 连接 时 它会失败并显示 Invalid descendent file name C np
  • Vagrant 错误:无法挂载 VirtualBox 共享文件夹(Guest Additions、vboxsf)

    问题 我在 Windows 10 上安装了 Vagrant 这样我就可以在虚拟机中创建个人本地开发环境 我读到的有关 Vagrant 的所有内容都表明我什至可以启动多个系统并通过 NAT 端口转发测试它们之间的通信 但首先 我只想在对其余部
  • “传输协议线程失败” – “套接字为 EOF”,使用 Java 进行 J2SSH 连接

    我正在尝试通过我的 Java 代码建立 SSH 连接 但遇到异常 我通过 Putty Winscp 工具测试了我的连接 它工作正常 问题出在我的 Java 代码上 SEVERE The Transport Protocol thread f
  • Ansible 列表未排序

    我有一个正在循环的列表 问题是它给出了一个奇怪的顺序 param yml 文件 my list a val1 b val2 c val3 d val3 这是我的简单调试循环 name debug debug msg item loop my
  • GitLab:无法将代码推送到服务器?

    我已经在 Ubuntu 服务器上安装了 GitLab 一切似乎都工作正常 除了我无法向服务器推送 拉取 克隆 当我按下时 我收到一般错误消息 fatal Could not read from remote repository Pleas
  • Homestead 无法远程访问第二个站点

    我的一个站点设置正常 但第二个站点无法远程访问 My YAML ip 192 168 10 10 memory 2048 cpus 1 provider virtualbox authorize ssh id rsa pub keys ss
  • 无法让 TeamCity 使用默认私钥向 GitHub 进行身份验证

    我正在尝试让 TeamCity 构建我的私人 GitHub 存储库 当我显式设置密钥文件的路径时 我能够成功让我的 VCS 根通过连接测试 然而 尽管进行了大量的谷歌搜索 当我使用 默认私钥 选项时 我无法让它工作 我明白了com jcra
  • 如何使用ssh直接连接远程docker容器

    我想直接使用 ssh 连接到远程运行的 Docker 容器 通常我可以 ssh i privateKey user host docker ps which will list all running containers docker e
  • ssh:连接到主机 bitbucket.org 端口 22:连接超时

    一切都工作得很好 做了一些git pushes 没有问题 今天我决定将我的框架更新到最新版本 因此它稍微改变了我项目的目录结构 因此 在 Bitbucket 中 我创建了一个新的存储库 dev1 project com 并将我的项目文件夹重
  • vagrant 仅在第一次“vagrant up”时询问密码

    我为 CentOS 6 6 制作了自定义的 vagrant box 我的问题是 为什么当我第一次 流浪 时 流浪者总是需要密码 这是控制台日志 vagrant up Bringing machine ns up with virtualbo
  • 通过 HTTPS 的隧道

    在我的工作场所 流量拦截器 防火墙变得越来越糟糕 我无法通过端口 22 连接到我的家用计算机 并且缺乏 ssh 访问权限让我感到难过 我以前可以通过将 SSH 移动到端口 5050 来使用它 但我认为最近的一些过滤器现在将此流量视为 IM
  • 开发/生产中的 Ansible 服务器/组

    我所处的情况是看不到正确的使用方法 我有多个分配了不同角色的服务器 分布在多个组中 与生产 登台环境相比 我在本地 Vagrant 环境中遇到了一些使用 group vars 的困难 在生产中 有更多的服务器 分配的组更少 在我的 Vagr

随机推荐

  • 将 JUNG 移植到 GWT [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有一个非常好的java图形库JUNG http jung sourceforge net 我想知道是否存在任何 GWT 库可以完成 JUN
  • 无法更新 Xcode 11 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 尝试从 Xcode 11 GM 更新到 11 1 总是失败 我首先尝试移动 Applications Xcode app 没有任何效果 这
  • 无法关闭 CFMX 8 中的持久跟踪 cookie

    CFMX 8 企业版 我已打开 内存变量 下的 使用 J2EE 会话变量 设置 因为安全要求规定不能使用持久 cookie 我知道打开此设置将告诉 CF 仅创建和使用 JSESSIONID 会话 cookie 然而 我的服务器似乎仍在创建和
  • 如何在 rxjs 管道中有条件地执行某些操作?

    有人可以告诉我带有条件操作的 rxjs 管道的正确语法是什么吗 在这种情况下 如果环境名称数组长度不为 1 我想使用过滤器进行映射 如何使用不返回的 if 语句 是否有任何 rxjs 运算符 environmentName env1 env
  • SwiftUI:ViewModifier,其中内容是图像

    我收到错误 Type PlayButtonModifier does not conform to protocol ViewModifier 我不明白为什么 更重要的是 我不明白如何正确地做到这一点 我只是尝试创建一个ViewModifi
  • MongoDB 4.x 实时同步到 ElasticSearch 6.x +

    我正在尝试找到一种简单的方法将 mongoDB 4 x 中的数据同步到 elasticsearch 6 x 我的用例是 Elasticsearch 支持但 mongodb 不支持的部分文本搜索 MongoDB 是我的应用程序的主要数据库 我
  • 使用node.js从输入中获取密码

    如何使用node js从输入中获取密码 这意味着您不应该输出在控制台中输入的密码 您可以使用read https www npmjs com package read module 披露 我写的 为了这 在你的外壳中 npm install
  • python 中的块作用域 - 与函数内部的 javascript 提升类似吗?

    我目前正在尝试理解Python中的这段代码 def foo a if a 12 var Same else var different 我阅读并理解了 python 不支持基于块的作用域这一事实 因此 函数内创建的所有内容 无论是在循环内还
  • 如何使用 Akka HTTP 表示表单数据请求?

    我想创建一个表单数据http请求脸书API https developers facebook com docs graph api video uploads使用 Akka HTTP 在curl中 请求示例如下所示 curl X POST
  • 检查数据库连接,否则显示消息

    我想检查该网站是否可以连接到 mySQL 如果没有 我想显示一个错误 指出用户应该在几分钟内尝试再次访问该页面 我真的不知道该怎么做 任何帮助将不胜感激 string mysql error resource link identifier
  • 使用 firebug 查找 JavaScript 中的内存泄漏?

    是否有适用于 Firefox 的附加组件可以用来找出部分 JavaScript 导致内存泄漏的情况 我对 Firefox 没有任何了解 但 Chrome 中的 webkit 检查器有一个内置的分析器 非常适合此类事情 作为一个额外的好处 它
  • 在Python中加载大文件

    我正在使用在 Ubuntu 9 04 上运行的 Python 2 6 2 GCC 4 3 3 我需要使用 Python 脚本逐行读取一个大数据文件 1GB gt 300 万行 我尝试了以下方法 发现它占用了很大的内存空间 3GB for l
  • 正则表达式,匹配不带“http://”和任何其他“/”的 url

    我环顾四周 但可能我无法使用正确的关键字 谷歌 所以我在这里 我需要将 url 剥离协议与第一个 相匹配 Target 匹配从 http 到第一个 可能是最后一个 不存在 或到结尾的第一个子字符串 那么问题来了 我写了这个正则表达式 但这个
  • 预定义类型“System.Runtime.CompilerServices.IsExternalInit”未定义或导入[重复]

    这个问题在这里已经有答案了 我在使用 Visual Studio 2019 Preview 测试 C 9 0 的新功能时一直遇到这个问题 我正在测试 init setter 但编译器显示错误并显示以下消息 错误 CS0518 未定义或导入预
  • 通过 Exchange EWS API 批准电子邮件

    我遇到一种情况 我需要将邮件重新路由到另一个作为主持人的邮箱 以编程方式 有没有办法批准我在主持人邮箱中收到的消息 我没有看到 EWS 对此有明确的支持 微软还有其他 API 类型支持这个吗 这不是官方批准的方式 但以下解决方法可以帮助我批
  • jQuery 增量读取 AJAX 流?

    我读过了这个问题 https stackoverflow com questions 6093103 jquery ajax display data as it comes in但它并不能完全回答我的问题 不幸的是 自从我上次查看 AJA
  • 找不到类型或命名空间 AppServiceConnection

    我无法找到在新计算机上编译的解决方案 该解决方案包含一个与控制台应用程序打包在一起的 UWP 应用程序 UWP 应用程序通过以下方式与控制台应用程序进行通信应用服务连接 https learn microsoft com en us uwp
  • 覆盖moment js默认的无效日期文本

    我如何覆盖 moment js var defaultInvalidDate Invalid date 无需更改 moment js 文件 就像我的网站使用 Site css 覆盖某些 bootstrap css 样式一样 所以当 boot
  • 使用 SFINAE 检测 C++ 中类型的 POD 性

    这里原来的标题是VS2005 C 中 SFINAE 错误的解决方法 这是暂时使用 SFINAE 来等效 TR1 中存在的 is pod 模板类 在 VS2005 中还没有 TR1 应该有它的value当模板参数是 POD 类型 包括基本类型
  • Ansible SSH 转发似乎不适用于 Vagrant

    好吧 奇怪的问题 我有 SSH 转发与 Vagrant 一起使用 但我试图在使用 Ansible 作为 Vagrant 配置程序时让它工作 我准确地找到了 Ansible 正在执行的内容 并亲自从命令行尝试了它 果然 它也失败了 commo