manala.apt
#######################################################################################################
:exclamation: 非推奨 :exclamation:
このリポジトリと関連する役割は、Manala Ansible Collection に取って代わられました。
使用方法については、コレクションリポジトリ を参照してください。
#######################################################################################################
Ansible Role: Apt 
:exclamation: 問題を報告する か、プルリクエストを送信する は、メインのAnsible Roleリポジトリ で行ってください :exclamation:
この役割は、以下のようにパッケージマネージャにサードパーティソースを追加します:
- 新しいリポジトリとしてソースURLを追加
- 指定されたセキュリティキーを追加
- パッケージの優先ファイルを管理(ピン留めとも呼ばれます)
- パッケージをインストール
これはManala Ansibleスタックの一部ですが、単独のコンポーネントとしても使用できます。
要件
なし。
依存関係
なし。
インストール
Ansible 2+
ansible galaxy cliを使用:
ansible-galaxy install manala.apt
ansible galaxyの要件ファイルを使用:
- src: manala.apt
Role Handlers
なし
Role Variables
定義
名前 | デフォルト | 型 | 説明 |
---|---|---|---|
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
を使用すると、既存のapt構成ファイルを manala_apt_configs_dir
で定義されたディレクトリにクリーンアップできます。古いまたは手動で作成されたファイルが現在の構成に影響を与えないようにするためのものです。
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
- bearstech
- nodesource_0_10
- nodesource_0_12
- nodesource_4
- nodesource_5
- nodesource_6
- nodesource_7
- nodesource_8
- nodesource_10
- nodesource_12
- nodesource_14
- nodesource_16
- postgresql
- maxscale_2_2
- mongodb_3_0
- mongodb_3_2
- mongodb_3_4
- mongodb_3_6
- mongodb_4_0
- mongodb_4_2
- varnish_4_0
- jenkins
- sensu
- rabbitmq
- proxmox
- proxmox_enterprise
- logentries
- galera_3
- grafana
- elasticsearch_1_7
- elasticsearch_2
- elasticsearch_5
- elasticsearch_6
- elasticsearch_7
- ppa_ansible
- blackfire
- sury_php
詳細な、パターンベース
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リポジトリから、高い優先度
- redis@dotdeb # "redis*" はdotdebリポジトリから、高い優先度
- libssl1.0.0@backports # "libssl1.0.0" はdebian backportsリポジトリから、高い優先度
# パターン構文
- preference: ansible@ansible
file: foo
詳細
manala_apt_preferences:
- package: '*'
pin: release o=Debian,a=stable
priority: 600
file: dotdeb
- package: 'php-*'
pin: release o=Debian,a=stable
priority: 900
file: php
state: absent
# 優先設定を無視する
- file: foo
state: ignore
# 優先設定をフラット化する
- "{{ my_custom_preferences_array }}"
ホールド
アップグレードしたくないホールドパッケージを管理するには、以下を使用します:
manala_apt_holds:
- foo # "foo" パッケージがアップグレードされないようにする
- package: bar # "bar" パッケージにも同様に、詳細な構文を使用
state: present
- package: baz # "baz" パッケージはアップグレードされるようにする
state: absent
# ホールドを無視する
- package: qux
state: ignore
# 非推奨
- package: quux
hold: true # または false :)
# ホールドをフラット化する
- "{{ my_custom_holds_array }}"
全てのパッケージをアップグレード可能とするための排他モードも提供されています。
manala_apt_holds_exclusive: true
パッケージ
簡潔
manala_apt_packages:
- vim # パッケージの名前
詳細
manala_apt_packages:
- package: bzip2 # 必要なパッケージ名
state: absent # パッケージの状態、オプション、デフォルトは "present"
force: true # インストールを強制、オプション
# パッケージを無視する
- package: foo
state: ignore # パッケージの状態、オプション、デフォルトは 'present'
# パッケージをフラット化する
- "{{ my_custom_packages_array }}"
フラグ
パッケージを更新:
manala_apt:
update: true
# manalaのロール全体で設定することもできます
manala:
update: true
ライセンス
MIT
作者情報
Manala (http://www.manala.io/)
ansible-galaxy install manala.apt