WindowsでAnsibleを始める

概要

Ansibleの環境準備はDockerを使うと簡単にできます。

背景

Ansibleを始めてみようと思ってもMac向けやLinux向けの環境構築ばかり出てくるので、Windowsでもパパッと始められる方法を考えました。

やりかた

触ったことがなかったので、Ansibleサーバーなるものを建ててセットアップして~、という系のものだと思っていましたがツールとしてAnsibleが入っていればいいだけのようです。
なので、Ansible入りのDockerイメージを作っておき、Playbook(自動化するための設定ファイル)はWindowsで書いて実行する時はコンテナの中に入って実行という風にしました。

Dockerは事前にインストールしておいてください。

適当な作業フォルダを作り、コマンドプロンプトで作業フォルダに移動します。

次のDockerfileを作成します。

FROM alpine:latest

RUN apk --update add openssh-client python3 py3-pip sshpass&& rm -rf /var/cache/apk/*
RUN pip3 install pip --upgrade && pip3 install ansible && pip3 cache purge

CMD ["/bin/ash"]

Dockerイメージをビルドします。

docker build -t ansible .

これで終わりです。

動作確認

準備

動作確認のために作業用ディレクトリ(work)とテストファイルを用意します。

  • work
    • inventory.yml
    • playbook
      • test.yml

inventory.ymlではターゲットホストや変数を定義します。

all:
  hosts:
    local:
      ansible_connection: local
      ansible_host: localhost

localhostに繋ぐ場合でも ansible_connection: local を入れてあげないとSSHで繋ぎに行こうとします。

test.ymlでは自動化する設定を定義します。

- name: First Playbook
  hosts: all
  tasks:
    - name: Hello
      debug:
        msg: "Hello World"

動作確認

コマンドプロンプトを起動し、次のコマンドでDockerコンテナを立ち上げます。

docker run --rm -it -v D:\work:/ansible ansible

作業用ディレクトリはフルパスで指定します。空白が含まれる場合はvオプションの引数部分全てをダブルクォーテーションでくくります。

docker run --rm -it -v "D:\spa ce\work:/ansible" ansible

次のコマンドでansible-playbookが実行できることを確認します。

ansible-playbook -i /ansible/inventory.yml /ansible/playbook/test.yml

コメント