manala.apt

#######################################################################################################

:exclamation: 非推奨 :exclamation:

このリポジトリと関連する役割は、Manala Ansible Collection に取って代わられました。

使用方法については、コレクションリポジトリ を参照してください。

#######################################################################################################

Ansible Role: Apt Build Status

: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/)

プロジェクトについて

Handle apt

インストール
ansible-galaxy install manala.apt
ライセンス
Unknown
ダウンロード
73k
所有者
Manala is an open source project supported by the french web agency ELAO providing advanced ansible roles for website's infrastructures and far more.