DockerでPythonの開発環境を爆速で作ってみる
$ sudo docker pull python:3.6 3.6: Pulling from library/python f49cf87b52c1: Pull complete 7b491c575b06: Pull complete b313b08bab3b: Pull complete 51d6678c3f0e: Pull complete 09f35bd58db2: Pull complete 0f9de702e222: Pull complete 73911d37fcde: Pull complete 99a87e214c92: Pull complete Digest: sha256:98149ed5f37f48ea3fad26ae6c0042dd2b08228d58edc95ef0fce35f1b3d9e9f Status: Downloaded newer image for python:3.6 $ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE python 3.6 c1e459c00dc3 6 weeks ago 692MB
イメージは公式のDocker Hubから入手している。 あとはコンテナを起動する。
$ sudo docker run -it --name pytest python:3.6 /bin/bash
コンテナ内に入ってpythonを見てみる
$ python --version Python 3.6.2
一瞬でpython 3.6の環境が作れた Dokcerって素晴らしい。何だこれ。仕組みについてはいつの日か勉強したいな。 コンテナってなんだろ namespaceだったりcgroupsとか正直ちんぷんかんぷんだ。
ansible-playbook
-k, --ask-pass SSH のパスワードを尋ねる(プロンプトが出る)
-K, --ask-sudo-pass sudo のパスワードを尋ねる(プロンプトが出る)
-C, --check インストールなどの変更は行わないが、条件の確認などは実行する
-c CONNECTION, --connection=CONNECTION local, ssh, paramiko から選択。デフォルトは paramiko。古い OpenSSH で ssh を指定する場合は ANSIBLE_SSH_ARGS="" と環境変数を空で上書きする必要がある
-D, --diff file や template の差分(diff)を表示する。--check と一緒に使うと便利
-e EXTRA_VARS, --extra-vars=EXTRA_VARS 追加の変数を key=value で指定する。playbook に書かれている変数の上書きはされない
-f FORKS, --forks=FORKS 並列実行する数(デフォルトは5)
-h, --help このヘルプメッセージを表示して終了する
-i INVENTORY, --inventory-file=INVENTORY インベントリファイルを指定する(デフォルトは /etc/ansible/hosts)
-l SUBNET, --limit=SUBNET 対象サーバーを指定のものだけに制限する
--list-hosts それぞれの playbook の対象ホスト一覧を表示して終了する。playbook の実行はされない
--list-tasks 各 playbook のタスク一覧を表示して終了する
-M MODULE_PATH, --module-path=MODULE_PATH モジュールファイルのディレクトリを指定する(デフォルトは /usr/share/ansible)
--private-key=PRIVATE_KEY_FILE SSH の秘密鍵ファイルを指定する
--start-at-task=START_AT 指定の task から開始する
--step ひとつの task ごとに "Perform task: タスク名 (y/n/c):" と確認される。y: (yes) 実行する、n: (no) 実行しない、c: (continue) 以降を確認なしで実行する
-s, --sudo 対象サーバーでの task を sudo で実行する
-U SUDO_USER, --sudo-user=SUDO_USER sudo での実行ユーザーを指定する(デフォルトは root)
--syntax-check playbook の文法チェックだけを行う
-t TAGS, --tags=TAGS 指定の tag が付けられた task のみを実行する
-T TIMEOUT, --timeout=TIMEOUT SSH のタイムアウトを指定する(デフォルトは10秒)
-u REMOTE_USER, --user=REMOTE_USER SSH で接続するユーザー名を指定する
-v, --verbose 冗長モード (-vvv でより冗長な出力になる)
--version バージョンを表示して終了する