QNAPをAnsibleのターゲットにする


うちのサーバ QNAP TS-231P の設定を ansible で管理したいなぁと思っていたんだけど、なかなか一筋縄ではいかなかった。

ようやくやれるようになったので、メモしておく。

準備

QNAPコントロールパネルなんて使いたくないからansibleをやりたいのだが、残念ながら最低限次のことだけはコントロールパネルでやらなくてはならない。

コントロールパネルが出るまでの設定、ハードディスクやボリュームの設定は適宜やるとして、QNAPコントロールパネルが開けるようになってから以下のことをする。

ネットワークとサービス / SSH接続

SSH接続を許可。SFTPも有効にする。ポートは一応22じゃなくて別のに変えておく。

Python3

AppCenter で Python3 をインストール。

Python3 は /share/CACHEDEV1_DATA/.qpkg/Python3 に入る。(本当は /sbin/getcfg Python3 Install_Path -f /etc/config/qpkg.conf でとってくるんだろうけど)
この中の src/bin にある。

しかしなぜかパーミッションが0666なので、sshで入って chmod +x /share/CACHEDEV1_DATA/.qpkg/Python3/src/bin/* で実行できるようにしておく。

ansible の準備

以下の設定を加える。hostsでもhost_varsでもgroup_varsでもどこでもいいのだが、「QNAP関連の設定」ということでgroup_varsに書く。ポート番号とかIPアドレスとかはhostsの方に書く。

group_vars/server.yml
ansible_python_interpreter: /share/CACHEDEV1_DATA/.qpkg/Python3/src/bin/python3
ansible_ssh_user: admin

これで一応 ansible が通るようになった。


注) いろいろ試した後の振り返りメモなので、もしかしたらこれだけではうまくいかないかもしれない。