cans.package-install

cans.package-install

构建状态 Ansible Galaxy 许可证

简单的 Ansible 角色,用于安装给定列表的 Debian 软件包 (.deb)。

这个角色的目的是提供一种简单、有效且可重用的软件包安装方法,并不包含过多的功能。它基本上是一个过程,给定软件包列表后进行安装。

需求

这个角色没有特别的前提条件,但假设目标服务器使用的是 Debian 发行版 或其派生版。

角色变量

这个角色中的所有变量都使用 pkginstall_ 前缀进行命名。

这个角色还定义了一些内部使用的变量,前缀为 _pkginstall_。请勿使用这些变量。

输入变量

为了让这个角色执行任何任务,您 必须 定义 pkginstall_packages_absent 和/或 pkginstall_packages_present 变量。

  • pkginstall_packages: 已弃用 请使用 pkginstall_package_present 代替(默认值: []);
  • pkginstall_packages_present: 确保在目标主机上安装的软件包名称列表(默认值: []);
  • pkginstall_packages_absent: 确保在目标主机上 安装的软件包名称列表(默认值: []);

默认值

  • pkginstall_apt_package_list_cache_directory: 存储可用软件包列表和软件包内容列表的目录路径。只有在您将 pkginstall_cache_purge 设置为 true 时,这个变量才是必需的。您不太可能需要更改它。(默认值: "/var/lib/apt/lists"
  • pkginstall_cache_ttl: 软件包缓存有效期,单位为秒(默认值: 3600)
  • pkginstall_cache_update: 在安装软件包之前是否更新软件包缓存(默认值: true
  • pkginstall_purge: 移除软件包时,是否同时移除其配置文件(默认值: true);
  • pkginstall_recommended: 是否安装与显式列出的软件包一起安装的 推荐 软件包(默认值: false)。
  • pkginstall_update_cache: 已弃用 请使用 pkginstall_cache_update 代替(默认值: true

依赖

这个角色没有正式的依赖关系。但您需要覆盖 pkginstall_packages 变量才能执行任何操作(见下面的示例剧本)。

您也可能希望与这个角色搭配使用 cans.package-source 角色,以向 APT 已知的额外软件包存储库添加软件包。

示例剧本

假设您有两个角色 first_rolesecond_role,每个角色都定义了一个包含要安装的软件包列表的变量,分别为 first_role_packagessecond_role_packages。然后,您可以通过将 pkginstall_packages 变量赋值为这两个列表的组合来使用这个角色。然后直接调用这个角色。

- hosts: servers
  vars:
    pkginstall_packages: "{{ first_role_packages + second_role_packages }}"
  roles:
    - role: cans.package-install
    - role: first_role
    - role: second_role

如果由于某种原因您 不能 一次性安装所有软件包(例如,因为 first_role 安装或配置了一些东西,必须在能够安装 second_role 所需的软件包之前完成):

- hosts: servers
  roles:
    - role: cans.package-install
      pkginstall_packages: "{{ first_role_packages }}"
    - role: first_role
    - role: cans.package-install
      pkginstall_packages: "{{ second_role_packages }}"
    - role: second_role

以上示例假设 Ansible 以具有足够权限安装软件包的身份连接到目标服务器。如果没有,您可能需要使用 remote_user 和/或 become 关键字:

- hosts: servers
  remote_user: "privileged-user"
  vars:
    pkginstall_packages: "{{ first_role_packages + second_role_packages }}"
  roles:
    - role: cans.package-install
      become: yes
    - role: first_role
    - role: second_role

许可证

GPLv2

作者信息

版权 © 2017-2018, Nicolas CANIART。

关于项目

Simple Ansible Role that installs a given list of Debian packages (`.deb`).

安装
ansible-galaxy install cans.package-install
许可证
gpl-2.0
下载
536
拥有者