見出し画像

docker:Ansibe開発日誌

リポジトリサーバのDockeのビルドをAnsibleで構成管理するプレイブックとロールを今日は作成しておりました。

結果は、今日の時点では完成しませんでした。

作ったもの:作ろうとしたもの

作成するロールは、当初1つにまとめる予定だったのですがDockerビルドの部分は、流石に分けた方がいいかと思いましたので分離しました。

なので作成を予定したいのは、次のもの

Dockerビルド用のrole
リポサーバのWeb設定と運用管理用のスクリプト配置用のrole

前者が新規作成、後者がすでに稼働中のCnetOS7のリポジトリサーバで利用しているものを今回の環境に改良します。

手詰まったところ

結局完成には至りませんでした。理由はDockerのビルドの方です。

Docker用のAnsibleモジュールの(community.docker類)使用には、docker-pyのインストールが必要になるのですがコントロールノード(Ansible実行)側に入れてもターゲットノード(Ansibleで構成管理される)側に入れてもエラーになってしまう状態です。

方々検索してみてPIP3で入れると解決したとかもあったので試してみたのですがだめでした。

https://stackoverflow.com/questions/62807456/problems-docker-sdk-for-python-docker-python-2-7-or-docker-py-python-2-6

なので一旦DockerのAnsibleインストール部分は、保留にしてWebとリポジトリの同期スクリプトの実装のAnsibleを今日は完成させました。

明日以降の対処

Dockerの構成管理についてですがAnsibleでDockerの構成管理を行う場合は、2つの方法があります。

1つは通常のSSHでDockerホストに接続して構成管理する方法

もう1つがDocker remote APIを使った構成管理の方法です。

前者の場合、ターゲットノード側にdocker-pyが必要になるのですが後者のほうだとコントロールノード側でdocker-pyを使って接続する事になります。

今回エラーを起こしたのは、いつも通りSSH接続で構成管理を試みた前者の方法なので明日は、後者のAPI接続による設定に挑戦したと思います。

API経由での接続の場合は、Dockerデーモンの設定ファイルを変更してAPI通信用のTCPソケットを解放する必要があるのでその設定もAnsibleで実装して挑戦しようと思います。

commandモジュールでdockerコマンドを直叩きも試したてみたのですがコンテナ起動の部分が冪等性保てないのでやめました。

以上、それではまた明日ありがとうございました。



この記事が気に入ったらサポートをしてみませんか?