首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Ansible安装Rbenv

使用Ansible安装Rbenv
EN

Stack Overflow用户
提问于 2014-02-05 22:16:30
回答 1查看 3.7K关注 0票数 1

我试图使用Ansible在我的服务器上安装Rbenv,但得到了以下错误:

任务: rbenv创建临时目录********************致命: localhost =>条件表达式必须计算为True或False: is_failed($rbuild_present) 致命:所有主机都失败了??中止。

我的剧本是:

代码语言:javascript
复制
---
- name: rbenv | update rbenv repo
  git: repo=git://github.com/sstephenson/rbenv.git
       dest=$rbenv_root
       version=v0.4.0

- name: rbenv | add rbenv to path
  file: path=/usr/local/bin/rbenv
        src=${rbenv_root}/bin/rbenv
        state=link

- name: rbenv | add rbenv initialization to profile
  template: src=templates/rbenv.sh.j2
            dest=/etc/profile.d/rbenv.sh
            owner=root
            group=root
            mode=0755

- name: rbenv | check ruby-build installed
  command: test -x /usr/local/bin/ruby-build
  register: rbuild_present
  ignore_errors: yes

- name: rbenv | create temporary directory
  shell: mktemp -d
  register: tempdir
  when_failed: $rbuild_present

- name: rbenv | clone ruby-build repo
  git: repo=git://github.com/sstephenson/ruby-build.git
       dest=${tempdir.stdout}/ruby-build
  when_failed: $rbuild_present

- name: rbenv | install ruby-build
  command: ./install.sh
           chdir=${tempdir.stdout}/ruby-build
  when_failed: $rbuild_present

- name: rbenv | remove temporary directory
  file: path=${tempdir.stdout} state=absent
  when_failed: $rbuild_present

- name: rbenv | check ruby $ruby_version installed
  shell: RBENV_ROOT=${rbenv_root} rbenv versions | grep $ruby_version
  register: ruby_installed
  ignore_errors: yes

- name: rbenv | install ruby $ruby_version
  shell: RBENV_ROOT=${rbenv_root} rbenv install $ruby_version
  when_failed: $ruby_installed

- name: rbenv | set global ruby $ruby_version
  shell: RBENV_ROOT=${rbenv_root} rbenv global $ruby_version
  when_failed: $ruby_installed

- name: rbenv | rehash
  shell: RBENV_ROOT=${rbenv_root} rbenv rehash
  when_failed: $ruby_installed

- name: rbenv | set gemrc
  copy: src=files/gemrc
        dest=/root/.gemrc
        owner=root
        group=root
        mode=0644

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-07 22:13:40

我怀疑您使用的是最新的Ansible或> 1.3.x。when_语法已被废弃,当您运行您的剧本时,它应该会给您一个警告。相反,请使用以下内容:

代码语言:javascript
复制
when: ruby_installed|failed

或者类似于:

代码语言:javascript
复制
when: 'not ($ruby_installed)'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21589745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档