Ansibleでyum_repositoryが使えない&ubuntuでパッケージを設定ファイル毎削除する

/

yum_repository

Ansibleのyum_repositoryオプションが何度やってもエラーになるので、おかしいと思い確認してみたらyum_repositoryにはAnsible2.1以上が必要との事

https://docs.ansible.com/ansible/yum_repository_module.html

$ ansible --version
ansible 2.0.1.0

自分の環境のAnsibleを確認をしたみたら少し古かったので、とりあえずアップデートしてみる。

//pipのシステムをアップデート
pip install -U pip
//ansibleをアップデート
pip install -U ansible

しかし何故かアップデートされない。

$ ansible --version
ansible 2.0.0.2-2

pipのリポジトリ先にまだ新しいバージョンがないのかと思いpypiを見てみるとちゃんと2.1以上がある。
https://pypi.python.org/pypi/ansible

pipに問題がないのでこっちに原因があると思いaptで確認してみたら、ubuntuのパッケージ管理からインストールしたAnsibleを読み込んでいた。

$ apt list ansible
ansible/xenial,xenial,now 2.0.0.2-2 all [インストール済み]

apt purge

古いAnsibleは要らないので削除してしまう。普通にremoveしただけで平気かもしれないが、設定残ってまた古いほうが読み込まれてしまうかもしれないのでpurgeを使って設定ファイルごと削除する。

$ sudo apt remove ansible 
$ apt list ansible
ansible/xenial,xenial,now 2.0.0.2-2 all [設定が残存]

$ sudo apt purge ansible 
$ apt list ansible
//パッケージと設定の両方が削除される。
ansible/xenial,xenial,now 2.0.0.2-2 all

先ほど既にpipでインストールを実行していたため、削除後にターミナルを開きなおすと新しいAnsibleが読み込まれる。

ansible --version
ansible 2.1.2.0

Ansibleが新しくなったので無事yum_repositoryも実行出来ました。

あとがき

yum_repositoryが比較的新しいオプションだとは知らず、またそんなに古いバージョンは使ってはいないと思い込んでいたので原因に気づかず解決に時間をくってしまいました。余計なトラブルを避けるために不要なパッケージは要らなくなった時点で削除しておくべきですね。
また削除して困った記憶も今の所ないので今回設定ファイルごと消してしいましたが、当然一度消した設定ファイルは戻せないのでremoveではなくpurgeを使う際にはよく確認してから実行したほうが良いと思います。

ubuntu logo by ©ubuntu.com