0
0

More than 3 years have passed since last update.

CentOS8のサーバーに古いAnsibleでつないだ話

Posted at

最近になってようやくCentOS8のサーバーを構築し始め、ansibleで一発と思っていたら一発じゃなかったのでメモです。

Ansibleのバージョンを上げれば終わる話な気がしますが、上から「影響範囲が...」と言われたので、バージョンを上げずに対応しました。

環境

Ansibleサーバー
  • Cnetos 7.3
  • Ansible 2.3
構築先サーバー
  • Centos 8.2

何が起こったか

EC2でCentOS8を起動し、ansible playbookでプレイブックを実行したところこんな感じのエラーが発生しました

fatal: [サーバー名]: FAILED! => {
    "changed": false, "failed": true, 
    "module_stderr": "Shared connection to [サーバー名] closed.\r\n", 
    "module_stdout": "/bin/sh: /usr/bin/python: No such file or directory\r\n", 
    "msg": "MODULE FAILURE", 
    "rc": 0
}

原因

ansible2.3はpython2で動作しますが、CentOS8にはデフォルトでpython2系がインストールされていません
/usr/bin/pythonにインストールされているpython3のリンクを張っても、バージョンの差異から動作の保証はできません(やってないのでわかりません)

対策

最初に書いた通り、バージョン上げての対応はNGと言われたのでpython2をインストールして対応をします。

構築先のCentOS8サーバーにpython2.7をインストール

dnf install python2

インストール後、python2.7のシンボリックリンクを作成します

ln -s /usr/bin/python2.7 /usr/bin/python

こんな感じでpython -> /usr/bin/python2.7のリンクが貼られていれば大丈夫です

[root@hoge:~]$ll /usr/bin | grep python | grep -e "^l"
lrwxrwxrwx  1 root root       18 Oct  1 16:17 python -> /usr/bin/python2.7
lrwxrwxrwx. 1 root root        9 Jun  5 12:38 python2 -> python2.7
lrwxrwxrwx. 1 root root       25 Oct  1 16:04 python3 -> /etc/alternatives/python3
lrwxrwxrwx. 1 root root       31 Nov 21  2019 python3.6 -> /usr/libexec/platform-python3.6
lrwxrwxrwx. 1 root root       32 Nov 21  2019 python3.6m -> /usr/libexec/platform-python3.6m
lrwxrwxrwx. 1 root root       24 Oct  1 16:10 unversioned-python -> /etc/alternatives/python

これで古いAnsibleからでもプレイブックを実行できるようになります。

ただ、この状態だと新しめのバージョンのAnsibleでエラーが発生します。
新しいバージョンのAnsibleのhostsファイルにansible_python_interpreter=/usr/bin/python3を記載しておくと回避できます。

[hoge-sv]
hoge001.net ansible_python_interpreter=/usr/bin/python3

まとめ

python2系がデフォルトでインストールされていないCentOS8でも、python2をインストールすることでansibleを実行できるようになりました。
基本的にはバージョン上げて対応するのが良いと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0