はじめに
ansible aptモジュール サンプルを作ったはいいけどそれなりにパラメータが有るので色々試してみようと思う
長いのでサイドバーの目次からオプション毎に見てね
注意
ここに書いてないオプションはこっちで既にやっているので書いてない場合がある。
- machine specs
ansible version : 2.7.10 (pip)
OS version : ubuntu 16.04.5 ( in conoha VPS)
- official page : apt
パラメータ一覧
本当は表形式にしたかったけど断念。(mac使い慣れてないのだ。。。)
以下の様に結構多い。前述のサンプル以外で使っていないものを中心に調べてみようと思う
- hosts: all
user: root
tasks:
- name: Install the package "libvirt-bin"
apt:
name: <package name>
allow_unauthenticated: no(default) / yes
autoclean: no(default) / yes
autoremove: no(default) / yes
cache_valid_time: 0(default)
deb: < debian package path >
default_release: < distribution >
dpkg_options: force-confdef,force-confold(default)
force: no(default) / yes
force_apt_get: no(default) / yes
install_recommends: no / yes
only_upgrade: no(default) / yes
purge: no(default) / yes
state: present(default) / absent / build-dep / latest
update_cache: no(default) / yes
upgrade: no(default) / dist / full / safe / yes
- allow_unauthenticated
aptコマンドでいう「--allow-unauthenticated」オプション。
paramterを「yes」にするとapt実行時に当該オプションを付与される。
意味はパッケージを確認できない場合に無視し、それについて質問しません
あまり意識して使った覚えがないな(==;
- autoclean
意味はclean と同様に、autoclean は取得したパッケージのローカルリポジトリを掃除します。
「/var/cache/apt/archive」配下を綺麗にすると思ったけどそれとは違った。
また、install/remove/purge時に付与してもオプションとして付与される類ではないので使用には注意
というより用途が知りたい(ーー;
- cache_valid_time: 0(default)
最新のrepository情報の維持をしたい!けど毎パッケージインストール毎にアップデートしたくない!って時に使いそう。
- deb
ネットワーク上、もしくはローカルに指定のdebファイルを指定してインストールする。
実際に実行してみた結果としてaptのhistoryのログに残ってないのでaptではなくdpkgコマンドで実際は導入していると思われる。
- default_release
aptコマンドの「-t」オプション相当。
特定のディストリビューション(trusty,xenial等)からパッケージを検索させてインストールすることができる。(無論当該ディストリビュートのリポジトリが参照することが前提条件)
やるとしたら自distよりも新しいdistの何かしらのパッケージをインストールしたい時に使う。
逆だと自distのパッケージが新しすぎて依存関係でエラーになる場合がある。(あった)
指定方法は以下の様にディストリビューション名を指定する。
default_release: xenial
- dpkg_options
aptコマンドの「-o」オプション相当。
デフォルトで「force-confdef,force-confold」が付けられている
オプションはコンマ区切りリストとして指定する必要がある
以下の様にコマンドオプションとして最終的には付与される(されている)
-o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold
- force
aptコマンドの「--force-yes」相当。
どのような処理であってもプロンプトを発生させず非対話的に処理が進められる。
(依存関係無視してインストールするオプションって勝手に勘違いしてた(ーー;
- force_apt_get
パッケージインストール時に「apt」ではなく、「apt-get」を用いる。
「/var/log/apt/history.log」見ればよく判る。
- install_recommends
aptコマンドの「--no-install-recommends」相当。
ざっくりいうと推奨パッケージも一緒にインストールするかしないかを選択出来る。
- only_upgrade
aptコマンドの「--only-upgrade」相当。
パッケージが既にインストールされている場合にのみアップグレードする。
(使い所さんが思いつかなかった。冪等性考えるとアップグレードonlyの処理のパターンが思いつかなかった。(install時にstate: latestではアカンのか。。。?)
旧バージョンがインストールされている状態で且つ新バージョンがインストール出来る状態でこのオプションを指定しても動かない場合がある。
これはstateを定義していない場合、デフォルト設定がpresentであるため発生する。[state: latest]との併用が必要
- state
パッケージ操作後の状態を規定する。
- absent : アンインストール時に指定する。(autoremove併用はお好みで)
- latest : 最新版となっている。(最新版をインストールする)
- present : パッケージがインストールされている。
- ( (旧バージョンでも)既にインストールされている場合は、インストールしない。)
- build-dep : 「apt build-dep」相当。ソースファイルからインストールする。
- upgrade
「apt upgrade」相当。オプションは以下の通り。
- no : 何もしない
- yes or safe : safe-upgrade(パッケージ構成を変えない範囲でアップグレードする)
- dist : dist-upgrade (インストールされてるカーネルの更新(Ubuntu)/ディストリビューションの更新)
- full : full-upgrade 前述以外もupgrade(パッケージを削除しないと更新できないパッケージも処理)
safeの場合は、kernel,distの場合はkernel & distribution, fullの場合は他のパッケージも含めて。って意味なのかな?
(いずれ調べたい。運用上、このオプションって使われてるのかな。あんまイメージ湧かない。)
結論
どちらかというとaptの勉強になった気がする。
dep-buildなんて知らなんだ。
なるほどなー