manala.apt
#######################################################################################################
:exclamation: 废弃通知 :exclamation:
本仓库及相关角色已被废弃,建议使用 Manala Ansible Collection
使用信息请参见 集合仓库
#######################################################################################################
Ansible 角色:Apt 
:exclamation: 在 主要 Ansible 角色仓库 中 报告问题 和 发送拉取请求 :exclamation:
该角色将通过以下方式向包管理器添加第三方源:
- 添加源 URL 作为新仓库
- 添加指定的安全密钥
- 管理包的优先级文件(即固定优先级)
- 安装包
它是 Manala Ansible 堆栈 的一部分,但也可以作为独立组件使用。
要求
无。
依赖
无。
安装
Ansible 2+
使用 ansible galaxy CLI:
ansible-galaxy install manala.apt
使用 ansible galaxy 需求文件:
- src: manala.apt
角色处理程序
无
角色变量
定义
名称 | 默认值 | 类型 | 描述 |
---|---|---|---|
manala_apt_configs_exclusive |
false | Boolean | 配置的排他性 |
manala_apt_configs_dir |
'/etc/apt/apt.conf.d' | String | 配置目录路径 |
manala_apt_configs_defaults |
{} | Array | 配置默认值 |
manala_apt_configs |
[] | Array | 配置 |
manala_apt_install_packages |
~ | Array | 要安装的依赖包 |
manala_apt_install_packages_default |
['apt-transport-https', 'openssl', 'ca-certificates'] | Array | 默认依赖包 |
manala_apt_components |
['main'] | Array | 组件集合 |
manala_apt_sources_list_file |
'/etc/apt/sources.list' | String | 源列表文件路径 |
manala_apt_sources_list_template |
~ | String | 源列表模板路径 |
manala_apt_sources_list |
~ | String/Array | 源列表 |
manala_apt_repositories_exclusive |
false | Boolean | 仓库的排他性 |
manala_apt_repositories |
[] | Array | 仓库 |
manala_apt_preferences_exclusive |
false | Boolean | 优先级的排他性 |
manala_apt_preferences_dir |
'/etc/apt/preferences.d' | String | 优先级目录路径 |
manala_apt_preferences_defaults |
{} | Array | 优先级默认值 |
manala_apt_preferences |
[] | Array | 优先级 |
manala_apt_holds_exclusive |
false | Array | 保持包的排他性 |
manala_apt_holds |
[] | Array | 保持包集合 |
manala_apt_packages |
[] | Array | 包集合 |
manala_apt_cache_valid_time |
3600 | Integer | 允许的 apt 缓存时间(秒) |
manala_apt.update |
false | Boolean | 更新包 |
示例
- hosts: all
vars:
manala_apt_repositories:
- contrib
manala_apt_preferences:
- git@backports
- dotdeb:100
- php@dotdeb_php56:300
- nginx@nginx
manala_apt_packages:
- xfonts-75dpi
- http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-{{ ansible_distribution_release }}-amd64.deb
roles:
- role: manala.apt
配置
manala_apt_configs
允许您使用模板和配置或原始内容定义 apt 配置文件。
可以提供状态(present|absent|ignore)。
manala_apt_configs:
# 基于模板(文件名基于模板)
- template: configs/check_valid_until_false.j2
# 基于模板(强制文件名)
- file: check
template: configs/check_valid_until_false.j2
# 基于内容
- file: foo_content
config: |
APT::Install-Recommends "false";
# 基于字典数组的配置(已废弃)
- file: foo
config:
- Acquire::Check-Valid-Until: true
# 确保配置不存在
- file: absent
state: absent # 默认是“present”
# 忽略配置
- file: ignore
state: ignore
# 扁平配置
- "{{ my_custom_configs_array }}"
manala_apt_configs_exclusive
允许您清理在 manala_apt_configs_dir
关键字定义的目录中现有的 apt 配置文件。确保没有旧文件或手动创建的文件会改变当前配置。
manala_apt_configs_exclusive: true
组件
指定 apt 组件
manala_apt_components:
- main
- contrib
- non-free
# 扁平组件
- "{{ my_custom_components_array }}"
源列表
使用模板:
manala_apt_sources_list_template: my/sources.list.j2
manala_apt_sources_list:
foo: bar
使用原始内容:
manala_apt_sources_list: |
deb http://deb.debian.org/debian {{ ansible_distribution_release }} main
deb http://security.debian.org/debian-security {{ ansible_distribution_release }}/updates main
deb http://deb.debian.org/debian {{ ansible_distribution_release }}-updates main
使用字典数组(已废弃):
manala_apt_sources_list:
- deb: http://deb.debian.org/debian {{ ansible_distribution_release }} main
- deb http://deb.debian.org/debian {{ ansible_distribution_release }} contrib
仓库
简洁,基于模式
manala_apt_repositories:
- security
- updates
- partner
- backports
- backports_sloppy
- dotdeb
- nginx
详细,基于模式
manala_apt_repositories:
- pattern: backports
state: absent
详细
manala_apt_repositories:
- source: deb http://pkg.jenkins-ci.org/debian binary/
key:
url: http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key
id: D50582E6
- source: deb https://enterprise.proxmox.com/debian {{ ansible_distribution_release }} pve-enterprise
state: absent
# 忽略仓库
- source: deb https://example.com foo
state: ignore
# 扁平化仓库
- "{{ my_custom_repositories_array }}"
排他性(所有未由角色定义的仓库将被删除)
manala_apt_repositories_exclusive: true
优先级
简洁,基于模式
格式:[优先级模式]@[仓库模式]:[优先级值]
请注意,引用的仓库将自动通过“manala_apt_repositories”过程包含为现有。
manala_apt_preferences:
- git@backports # “git*”来自debian backports仓库,高优先级
- dotdeb:100 # “*”来自dotdeb仓库,低优先级
- php@dotdeb # “php*”来自dotdeb仓库,高优先级
# 模式语法
- preference: ansible@ansible
file: foo
详细
manala_apt_preferences:
- package: '*'
pin: release o=Debian,a=stable
priority: 600
file: dotdeb
# 忽略优先级
- file: foo
state: ignore
# 扁平化优先级
- "{{ my_custom_preferences_array }}"
保持
处理您不希望升级的包(即保持包):
manala_apt_holds:
- foo # 确保“foo”包不会被升级
- package: bar # 与“bar”包相同,使用详细语法
state: present
# 忽略保持
- package: qux
state: ignore
# 扁平化保持
- "{{ my_custom_holds_array }}"
也提供了排他模式,以确保除您设置的包以外的所有包都可以升级。
manala_apt_holds_exclusive: true
包
简洁
manala_apt_packages:
- vim # 包名称
详细
manala_apt_packages:
- package: bzip2 # 包名称,必填
state: absent # 包状态,可选,默认“present”
# 忽略包
- package: foo
state: ignore # 包状态,可选,默认'present'
# 扁平化包
- "{{ my_custom_packages_array }}"
标志
更新包
manala_apt:
update: true
# 也可以通过 manala 角色跨越设置
manala:
update: true
许可证
MIT
作者信息
Manala (http://www.manala.io/)