community.general.bundler 模块 – 使用 Bundler 管理 Ruby Gem 依赖项

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general

要在 playbook 中使用它,请指定:community.general.bundler

概要

  • 使用 Bundler gem 管理 Ruby 的安装和 Gem 版本依赖项

参数

参数

注释

binstub_directory

路径

仅当 state=present 时适用。指定要将任何 gem bin 文件安装到的目录。执行时,bin 文件将在 Gemfile 的上下文中运行,如果任何必需的 gem 依赖项未安装,则会失败。如果设置了 chdir,则此路径相对于 chdir

chdir

路径

从中执行 bundler 命令的目录。此目录需要包含有效的 Gemfile 或 .bundle/ 目录

如果未指定,它将默认为临时工作目录

clean

布尔值

仅当 state=present 时适用。如果设置,则删除目标主机上 Gemfile 中不存在的任何 gem

选项

  • false ← (默认)

  • true

deployment_mode

布尔值

仅当 state=present 时适用。如果设置,它将 gem 安装到 ./vendor/bundle 而不是默认位置。需要预先创建 Gemfile.lock 文件

选项

  • false ← (默认)

  • true

exclude_groups

列表 / 元素=字符串

在操作期间要排除的 Gemfile 组列表。这仅在 state=present 时适用。Bundler 将其视为 Gemfile 的“记住”属性,即使未设置 exclude_groups,在将来的操作中也会自动排除组

executable

字符串

Bundler 可执行文件的路径

extra_args

字符串

可以应用于 Bundler 命令的额外命令的空格分隔字符串。有关更多信息,请参阅 Bundler 文档

gem_path

路径

仅当 state=present 时适用。指定要将 gem 安装到的目录。如果设置了 chdir,则此路径相对于 chdir

如果未指定,将使用默认的 RubyGems gem 路径。

gemfile

路径

仅当 state=present 时适用。要用于安装 gem 的 gemfile 的路径。

如果未指定,它将默认为当前目录中的 Gemfile

local

布尔值

如果设置,则仅安装目标主机缓存中的 gem

选项

  • false ← (默认)

  • true

state

字符串

Gem bundle 的所需状态。latest 将 gem 更新到最新可接受的版本

选项

  • "present" ← (默认)

  • "latest"

user_install

布尔值

仅当 state=present 时适用。将 gem 安装到本地用户的缓存中或所有用户

选项

  • false

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持:完全支持

可以在 check_mode 中运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持:不支持

在差异模式下,将返回有关已更改内容(或可能需要在 check_mode 中更改的内容)的详细信息。

示例

- name: Install gems from a Gemfile in the current directory
  community.general.bundler:
    state: present
    executable: ~/.rvm/gems/2.1.5/bin/bundle

- name: Exclude the production group from installing
  community.general.bundler:
    state: present
    exclude_groups: production

- name: Install gems into ./vendor/bundle
  community.general.bundler:
    state: present
    deployment_mode: true

- name: Install gems using a Gemfile in another directory
  community.general.bundler:
    state: present
    gemfile: ../rails_project/Gemfile

- name: Update Gemfile in another directory
  community.general.bundler:
    state: latest
    chdir: ~/rails_project

作者

  • Tim Hoiberg (@thoiberg)