suzuki-shunsuke.rbenv-module
ansible-rbenv-module
ansible模块,用于运行rbenv命令。
https://galaxy.ansible.com/suzuki-shunsuke/rbenv-module/
注意
- 此模块不支持检查模式
支持的平台
- 通用Linux
- MacOSX
我们在以下环境中测试了此模块
- Ubuntu 16.04(Vagrant,Virtualbox)
- CentOS 7.3(Vagrant,Virtualbox)
- MacOS Sierra 10.12.5
需求
如果你想通过ansible角色安装rbenv和ruby-build及其依赖,推荐使用suzuki-shunsuke.rbenv。
支持的rbenv子命令和选项
$ rbenv install [--skip-existing] [--force] <version>
$ rbenv uninstall --force <version>
$ rbenv install --list
$ rbenv versions [--bare] [--skip-aliases]
$ rbenv global
$ rbenv global <version>
安装
$ ansible-galaxy install suzuki-shunsuke.rbenv-module
# playbook.yml
- hosts: default
roles:
# 调用此角色后,您可以使用该模块。
- suzuki-shunsuke.rbenv-module
选项
除了此文档外,请参阅rbenv命令参考以及rbenv help <command>
命令的输出。
常见选项
名称 | 类型 | 必需 | 默认 | 选项/示例 | 描述 |
---|---|---|---|---|---|
subcommand | str | 否 | install | [install, uninstall, versions, global] | |
rbenv_root | str | 否 | ~/.rbenv | 如果环境变量“RBENV_ROOT”未设置,则此选项是必需的 | |
expanduser | bool | 否 | yes | 默认情况下,环境变量RBENV_ROOT和“rbenv_root”选项通过os.path.expanduser进行过滤 |
“install”子命令的选项
参数 | 类型 | 必需 | 默认 | 选项/示例 | 描述 |
---|---|---|---|---|---|
version | str | 否 | 2.4.0 | ||
list | bool | 否 | no | -l选项 | |
skip_existing | bool | 否 | yes | -s选项 | |
force | bool | 否 | no | -f选项 |
需要“version”或“list”选项之一。 如果设置了“list”选项,该任务的返回值将包含“versions”字段。
“uninstall”子命令的选项
参数 | 类型 | 必需 | 默认 | 选项/示例 | 描述 |
---|---|---|---|---|---|
version | str | 是 | 2.4.0 |
“global”子命令的选项
参数 | 类型 | 必需 | 默认 | 选项 | 描述 |
---|---|---|---|---|---|
version | str | 否 |
“global”子命令的返回值中有“versions”字段。
“versions”子命令的选项
参数 | 类型 | 必需 | 默认 | 选项 | 描述 |
---|---|---|---|---|---|
bare | bool | 否 | yes | ||
skip_aliases | bool | 否 | yes | --skip-aliases选项 |
“versions”子命令的返回值中有“versions”字段。
示例
- name: rbenv install --list
rbenv:
list: yes
rbenv_root: "~/.rbenv"
register: result
failed_when: result.failed or result.changed
- debug:
var: result.versions
- name: rbenv global
rbenv:
subcommand: global
rbenv_root: "~/.rbenv"
register: result
failed_when: result.failed or result.changed
- debug:
var: result
- name: rbenv install --skip-existing 2.4.0
rbenv:
version: 2.4.0
rbenv_root: "~/.rbenv"
- name: rbenv versions --bare --skip-aliases
rbenv:
subcommand: versions
rbenv_root: "~/.rbenv"
register: result
failed_when: result.failed or result.changed
- debug:
var: result.versions
- name: rbenv versions --skip-aliases
rbenv:
subcommand: versions
rbenv_root: "~/.rbenv"
bare: no
register: result
failed_when: result.failed or result.changed
- debug:
var: result.versions
- name: rbenv versions --bare
rbenv:
subcommand: versions
rbenv_root: "~/.rbenv"
skip_aliases: no
register: result.versions
failed_when: result.failed or result.changed
- debug:
var: result
- name: rbenv global 2.4.0
rbenv:
subcommand: global
version: 2.4.0
rbenv_root: "~/.rbenv"
register: result
- debug:
var: result.version
- name: rbenv global
rbenv:
subcommand: global
rbenv_root: "~/.rbenv"
register: result
failed_when: result.failed or result.changed
- debug:
var: result.versions
- name: rbenv uninstall --force 2.3.1
rbenv:
subcommand: uninstall
version: 2.3.1
environment:
RBENV_ROOT: "~/.rbenv"
register: result
- name: 在ruby 2.4.0上安装rake
gem:
name: rake
executable: "~/.rbenv/versions/2.4.0/bin/gem"
提示
使用gem安装ruby包
现在该模块不支持gem
子命令,
但您可以通过官方gem模块来实现。
# 使用gem模块之前安装ruby并创建虚拟环境
- name: rbenv install --skip-existing 2.4.0
rbenv:
rbenv_root: "{{rbenv_root}}"
version: 2.4.0
# 在使用可执行选项调用gem模块
- name: 在ruby 2.4.0上安装rake
gem:
name: rake
executable: "{{rbenv_root}}/versions/2.4.0/bin/gem"
更新日志
请查看CHANGELOG.md。
参考
- suzuki-shunsuke.rbenv:用于安装rbenv的ansible角色
许可
开发
需求
- Vagrant
- Ansible
- Node.js
- yarn
设置
$ yarn install
$ cd tests
$ ansible-galaxy install -r roles.yml
测试
$ cd tests
$ vagrant up --provision