Ansible作成時に詰まったのでメモ。
2019/12/02現在の話。
環境はCentOS8、ansible2.9.1
dnf moduleコマンドがサポートされていない
まだサポートされていない模様。
参考:https://github.com/ansible/ansible/issues/64852
以下のようなコマンドがansibleのdnfだと現状使えない。
実行したい場合はcommandかshellで実行する。
ansible化したいコマンド
dnf module disable php
dnf module install php:remi-7.4
無理
# 以下のように書けない。
- name: php disable
dnf:
disable_repo: php
- name: php7.4 install
dnf:
name: php
enable_repo: remi-7.4
こうやるしかない
- name: php disable
shell: 'dnf module disable -y php'
- name: php7.4 install
shell: 'dnf module install -y php:remi-7.4'
補足
話はずれるが、php7.4を入れる場合はデフォルトでは入らないので
別途remiとepelリポジトリをインストールしておくこと。
- name: Install epel.repo
dnf:
name: 'https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm'
state: present
- name: Install remi.repo
dnf:
name: 'https://rpms.remirepo.net/enterprise/remi-release-8.rpm'
state: present
"@"が先頭に付くパッケージのインストール
バージョンまで指定しないとエラーになる
ダメな書き方
- name: mysql8 install
dnf:
name: '@mysql'
正しい書き方
- name: mysql8 install
dnf:
name: '@mysql:8.0'
まだまだ賢くはないらしい。