LoginSignup
1
0

More than 5 years have passed since last update.

docker内のansibleからホストマシンをセットアップする

Last updated at Posted at 2016-12-05

前提

uraura@rosemary$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.12.1
BuildVersion:   16B2555
uraura@rosemary$ docker version
Client:
 Version:      1.13.0-rc2
 API version:  1.25
 Go version:   go1.7.3
 Git commit:   1f9b3ef
 Built:        Wed Nov 23 17:40:58 2016
 OS/Arch:      darwin/amd64

Server:
 Version:             1.13.0-rc2
 API version:         1.25
 Minimum API version: 1.12
 Go version:          go1.7.3
 Git commit:          1f9b3ef
 Built:               Wed Nov 23 17:40:58 2016
 OS/Arch:             linux/amd64
 Experimental:        true

概要

  • Ansibleを使ってMacのセットアップをしたかった
  • Ansibleをどうやって入れるのよ?
  • pythonの依存モジュールがいくつか必要だけどシステムのPythonにインストールするのはちょっと...
  • pythonセットアップ...?

と,なんか堂々巡りになってしまったのでdockerコンテナからできればいいなと思いました.

やったこと

dockerイメージの作成

Dockerfile
FROM python:alpine

RUN set -x \
    && apk add --no-cache gcc libffi-dev musl-dev openssl-dev openssh \
    && pip install ansible

ENTRYPOINT [ "ansible" ]
CMD [ "--version" ]
uraura@rosemary$ docker build -t ansible .
:
中略
:
Successfully built 690d16250387

セットアップ

  • System Preferences > Sharing > Remote Login をONにすると勝手にMacOSのsshdが起動します
  • ssh-keygenとかで適当な鍵を作り,public keyをauthorized_keysに書きこんでおく
uraura@rosemary$ docker run --rm -it -v $HOME/.ssh:/ssh ansible all -i $(ipconfig getifaddr en0), -u $USER --private-key /ssh/id_ed25519 --ssh-extra-args='-o StrictHostKeyChecking=no' -m ping
10.0.1.105 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

まとめ

  • dockerべんり
  • dockerコンテナからホストへsshする
  • ホストディレクトリをマウントして鍵を使わせればいいのでイメージにうめこんだりしなくていい

これでホストのpythonを汚さずにansibleでごにょることが可能になりました.

1
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
1
0