ruby - RVM 在 Ruby 安装期间要求在交互式提示中输入用户名

标签 ruby rvm ansible redhat

我正在尝试使用 Ansible 安装 RVM,以便在远程 (RedHat 6.x) 系统上安装更新版本的 Ruby。我尝试了两个单独的 Ansible-RVM 剧本(rvm/rvm1-ansiblenewmen/ansible-rvm),但它们都表现出相同的行为:它们都达到剧本指示 RVM 安装 Ruby 的步骤,然后停止直到我取消该过程:

TASK: [ansible-rvm | installing Ruby as root]
*********************************
<HOST.DOMAIN.xyz>
<HOST.DOMAIN.xyz>
<HOST.DOMAIN.xyz> IdentityFile=/Users/USER/.ssh/private-key-file ConnectTimeout=10 PasswordAuthentication=no KbdInteractiveAuthentication=no ControlPath=/Users/USER/.ansible/cp/ansible-ssh-%h-%p-%r PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey ControlMaster=auto ControlPersist=60s
<HOST.DOMAIN.xyz>
<HOST.DOMAIN.xyz> IdentityFile=/Users/USER/.ssh/private-key-file ConnectTimeout=10 'sudo -k && sudo -H -S -p "[sudo via ansible, key=KEY] password: " -u root /bin/sh -c '"'"'echo SUDO-SUCCESS-KEY; LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 /usr/bin/python /home/USER/.ansible/tmp/ansible-tmp-dir/command; rm -rf /home/USER/.ansible/tmp/ansible-tmp-dir/ >/dev/null 2>&1'"'"'' PasswordAuthentication=no KbdInteractiveAuthentication=no ControlPath=/Users/USER/.ansible/cp/ansible-ssh-%h-%p-%r PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey ControlMaster=auto ControlPersist=60s
^CERROR: interrupted

看来原因是 RVM 需要某种登录信息。当我通过 SSH 进入有问题的主机以手动运行 RVM 时,我收到提示 Username::

$ rvm install ruby-2.2.2
Searching for binary rubies, this might take some time.
No binary rubies available for: redhat/6/x86_64/ruby-2.2.2.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for redhat.
Enabling optional repository
Username: ^C
User interrupted process.

无论 rvm 命令是否在 sudo 下运行,上述情况都会发生。

我找不到任何关于 RVM 请求的登录名/用户名的文档,也找不到关于我可以应用以禁用交互的标志或配置的任何说明;事实上,我还没有找到任何关于此登录提示与 RVM 一起使用的引用资料。以前有人遇到过这个问题吗?

最佳答案

原因是 rvm 正在尝试安装系统要求,这需要输入 sudo 密码。

我已经在我的 rvm1-ansible 分支中修复了这个问题 here在这个commit

在 Ubuntu 中为我工作。

---
- name: Configure servers with ruby support for single user
  hosts: newservers
  become: yes

  roles:
    - { role: rvm_io.ruby,
        tags: ruby,
        rvm1_rubies: [2.3.3],
        rvm1_user: 'sudouser',
        rvm1_install_flags: '--auto-dotfiles --user-install',
        rvm1_install_path: '/home/{{ ansible_user }}/.rvm',
      }

使用 sudo 用户启动任务:

ansible-playbook -i hosts.ini ruby_script.yml --user sudouser --ask-sudo-pass

关于ruby - RVM 在 Ruby 安装期间要求在交互式提示中输入用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36189727/

相关文章:

ruby - 如何在 Jupyter Web UI (Mac OS 10.10.5) 中安装 Ruby 用作笔记本?

ruby-on-rails - ErrorLoadingRVMRC - 为 Rails 应用程序运行乘客时,rvmrc 文件不受信任

pip - 使用pip3在Centos7上安装ansible

ruby - bundler vs RVM vs gems vs RubyGems vs gemsets vs system ruby

ruby - 使用 Ruby 脚本发送电子邮件 - 501 5.5.4 无效地址

ruby-on-rails - 使用旧版本的 bundler

ruby - 在 Ubuntu 上安装 Ruby 2.2.3

Ruby PATH 未正确设置

json - 从 json 输出中提取一个变量,然后使用 ansible 调试和注册输出

docker - Ansible:将文件复制到 Docker 卷