2019年6月14日金曜日

Dockerでpython3.7とparamikoをインストールしたコンテナ(Alpine3.9ベース)を作成する

paramikoでpythonからSSHクライアントとしてアクセスする事ができます。

以下のコマンドとDockerfileを使用してpython3.7とparamikoがインストールされたイメージを作成する事ができます。
docker build -t myparamiko:1.0 .

Dockerfile
FROM python:3.7-alpine3.9
RUN apk --no-cache add libstdc++ \
  && apk --no-cache --virtual pydeps add gcc \
    g++ \
    python3-dev \
    musl-dev \
    cython \
    libffi-dev \
    openssl-dev \
    make \
  && pip install paramiko \
  && apk del --purge pydeps
CMD ["/bin/sh"]

以下のコマンドでサンプルコードを実行して、SSH接続してホスト名を表示できます。
docker run -v `pwd`:/tmp --rm -it myparamiko:1.0 /usr/local/bin/python3 /tmp/test.py

test.py
import paramiko

sshc = paramiko.SSHClient()
sshc.set_missing_host_key_policy(paramiko.AutoAddPolicy())
sshc.connect("<ホスト名>", username="<ユーザ名>", password="<パスワード>", port=22)
sess = sshc.get_transport().open_session()
if sess.active:
  sess.exec_command("hostname")
  print(sess.recv(1024))

0 件のコメント:

コメントを投稿