cans.package-install
cans.package-install
简单的 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_role
和 second_role
,每个角色都定义了一个包含要安装的软件包列表的变量,分别为 first_role_packages
和 second_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。