Ansible-containerのinstallでつまづく
TL;DR
githubのソースからインストール
はじめに
単一イメージで闇鍋状態の環境を複数のDockerコンテナに分割したい.
すでにAnsibleのPlaybookはあるのでDockerfileへの書き起こしは半分単純労働だが,どうせならPlaybookを使いまわしたい.
Welcome to ansible-container! — Ansible Container Documentation
ansible-containerというツールを見つけたので,これを使おうと決心.
インストールの過程
いろんな記事に載っているが,
pip install ansible-container
でいいよとの事なので頑張ってみる
Collecting ansible-container Downloading https://files.pythonhosted.org/packages/bc/2a/b1252de3931173d26a30fc965be33c9cc0044cf7b23ce4c707f55d86830c/ansible-container-0.9.2.tar.gz (1.4MB) 100% |████████████████████████████████| 1.4MB 648kB/s Complete output from command python setup.py egg_info: Traceback (most recent call last): File "<string>", line 1, in <module> File "/private/tmp/pip-install-pctywm/ansible-container/setup.py", line 10, in <module> from pip.req import parse_requirements ImportError: No module named req ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /private/tmp/pip-install-pctywm/ansible-container/
pipのバージョン下げたり色々してるけど,gitソースから持って来ればいいのね.
$ git clone https://github.com/ansible/ansible-container.git $ cd ansible-container $ sudo pip install -e . ... ansible-container 0.9.3rc3 has requirement docker==2.7.0, but you'll have docker 3.7.0 which is incompatible.
なんかdockerモジュールのバージョン指定してる...しかもそこそこに古い...
$ sudo pip uninstall docker
$ sudo pip install docker
$ pip show docker
Name: docker
Version: 2.7.0
Summary: A Python library for the Docker Engine API.
Home-page: https://github.com/docker/docker-py
Author: Joffrey F
Author-email: joffrey@docker.com
License: Apache License 2.0
Location: /Library/Python/2.7/site-packages
Requires: websocket-client, backports.ssl-match-hostname, ipaddress, six, requests, docker-pycreds
Required-by: ansible-container
$ sudo pip install -e . $ ansible-container usage: ansible-container [-h] [--debug] [--devel] [--engine ENGINE_NAME] [--project-path BASE_PATH] [--project-name PROJECT_NAME] [--vars-files VARS_FILES] [--no-selinux] [--config-file CONFIG_FILE] {run,help,deploy,stop,destroy,restart,init,version,build,install,push,import} ... ansible-container: error: too few arguments
おわりに
インストールマネージャ使ってのインストールがマネジメント仕切れていないの多いよね ()