Ansibleのpackageモジュール、ディストリビューションに依存しないパッケージインストールが可能になるが、ディストリビューション違いに伴うパッケージ名の差異は吸収してくれないので回避策を考えてみる
- name: install virtualenv
ansible.builtin.package:
name: "{{ virtualenv_pkg_name[ansible_distribution] }}"
state: present
vars:
virtualenv_pkg_name:
CentOS: python-virtualenv
Ubuntu: python3-virtualenv
- set_fact で
ansible_distribution
を取得 -
ansible_distribution
の値がKeyになるように辞書を作成 - 辞書のキー指定に変数を利用してディストリビューションによって返す値が変えられるようになる