Open22

ansible-core 2.14 / ansible 7 関連メモ

akira 6592akira 6592

ansible 7 基本情報

2022/11/22 リリース

ansible 7 ロードマップ

https://docs.ansible.com/ansible/devel/roadmap/COLLECTIONS_7.html

ansible 7 Porting Guide

https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_7.html

google.cloud コレクションが削除される予定だったのが取り消し。今後も残る。

ansible 7 changelog

https://github.com/ansible-community/ansible-build-data/blob/main/7/CHANGELOG-v7.rst

ansible 7 でセットでインストールされる collection の定義

https://github.com/ansible-community/ansible-build-data/blob/main/7/CHANGELOG-v7.rst#included-collections

ansible 7.0.0 リリース

https://pypi.org/project/ansible/7.0.0/

akira 6592akira 6592

【注意】コントロールノードで Python 3.9 以上が必要に

ansible - Increase minimum Python requirement to Python 3.9 for CLI utilities and controller code

akira 6592akira 6592

action_plugin フィールド

Add an 'action_plugin' field for modules in runtime.yml plugin_routing.

akira 6592akira 6592

loop_control.extended_allitems 追加

Loops - Add new loop_control.extended_allitems to allow users to disable tracking all loop items for each loop (#75216)

メモリ消費の削減。

関連

https://github.com/ansible/ansible/issues/75216

https://github.com/ansible/ansible/pull/75760

ドキュメント

https://docs.ansible.com/ansible-core/2.14/playbook_guide/playbooks_loops.html#extended-loop-variables

To disable the ansible_loop.allitems item, to reduce memory consumption, set loop_control.extended_allitems: no.

デフォルトは true (これまで通りの挙動)

akira 6592akira 6592

handler で import_roleinclude_role 利用時に適切なエラーを表示するように

Raise a proper error when include_role or import_role is used as a handler.

akira 6592akira 6592

ansible-galaxy collection install コマンドに --offline オプション追加

ansible-galaxy collection install - add an --offline option to prevent querying distribution servers (#77443).

オフラインインストールが便利に。これまで、オフラインで済ませたいときに必要のない通信が発生していたが、それを抑止可能に。

関連

https://github.com/ansible/ansible/issues/77443

akira 6592akira 6592

ansible-config dump コマンドの出力が YAML と JSON 形式に対応

ansible-config adds JSON and YAML output formats for list and dump actions.

--format または -f オプションで指定可能

選択肢

  • json
  • yaml
  • display (デフォルト)

ドキュメント

https://docs.ansible.com/ansible-core/2.14/cli/ansible-config.html#cmdoption-ansible-config-dump-format

--format <FORMAT>, -f <FORMAT>

関連

https://github.com/ansible/ansible/pull/77447

おためし

% ansible-config dump --only-changed -f yaml
- name: CONFIG_FILE
  origin: ''
  type: null
  value: /Users/sakana/ansible/ansible.cfg
- name: HOST_KEY_CHECKING
  origin: /Users/sakana/ansible/ansible.cfg
  type: null
  value: false
% ansible-config dump --only-changed -f json
[
    {
        "name": "CONFIG_FILE",
        "origin": "",
        "type": null,
        "value": "/Users/sakana/ansible/ansible.cfg"
    },
    {
        "name": "HOST_KEY_CHECKING",
        "origin": "/Users/sakana/ansible/ansible.cfg",
        "type": null,
        "value": false
    }
]

https://tekunabe.hatenablog.jp/entry/2022/12/06/ansible-config-dump-yaml-json

akira 6592akira 6592

ansible-consolecollections

ansible-console added 'collections' command to match playbook keyword.

akira 6592akira 6592

version 表示に Python の実行パスが追加

version output now includes the path to the python executable that Ansible is running under

関連

https://github.com/ansible/ansible/pull/77631

おためし

% ansible --version
ansible [core 2.14.0]
  config file = /Users/sakana/ansible/ansible.cfg
  configured module search path = ['/Users/sakana/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/sakana/envs/ac214/lib/python3.9/site-packages/ansible
  ansible collection location = /Users/sakana/.ansible/collections:/usr/share/ansible/collections
  executable location = /Users/sakana/envs/ac214/bin/ansible
  python version = 3.9.10 (main, Jan 15 2022, 11:48:04) [Clang 13.0.0 (clang-1300.0.29.3)] (/Users/sakana/envs/ac214/bin/python3.9)
  jinja version = 3.1.2
  libyaml = True

(/Users/sakana/envs/ac214/bin/python3.9)

akira 6592akira 6592

【少し注意】DEFAULT_FACT_PATHDEFAULT_GATHER_SUBSETDEFAULT_GATHER_TIMEOUT が deprecated に

DEFAULT_FACT_PATH, DEFAULT_GATHER_SUBSET and DEFAULT_GATHER_TIMEOUT are deprecated and will be removed in 2.18. Use module_defaults keyword instead.

関連

https://github.com/ansible/ansible/pull/77656

akira 6592akira 6592

【注意】import_plyabook モジュールで free-form の追加パラメータは利用不可に

import_playbook - remove deprecated functionality that allows providing additional parameters in free form

freefom形式でPlaybookファイル名以外の追加パラメータは利用不可に。

以下NGな例

import_playbook: test_includes2.yml parameter1=asdf parameter2=jkl

以前から deprecated だった。

関連

https://github.com/ansible/ansible/pull/77431