Edited at

Windows 10上にUbuntuを展開しAnsibleを実行できるようにする

More than 1 year has passed since last update.

Windows 10でAnsibleを実行できるようにするため、WSL(Windows Subsystem for Linux)よりUbuntu実行環境を得ます。


コンテンツ


  • Windows 10でもAnsible 2.3が動く。

  • Windows Subsystem for Linuxも課題はあるものの、実行環境としてはUbuntu同等。


対象読者 or 前提条件 or 環境


  • Windows 10所有者


1. Subsystem for Linuxの有効化

Subsystem for Linux(WSL)は簡単なイメージですと、Windows上にUbuntu 14.04 LTS(code-name: Trusty)を展開することでBashなど実行空間を作りだすことが出来る機能のことです。

ちょっと詳細を書くと、WSLを有効化するとLinux互換のカーネルドライバをWindowsカーネル上に展開することで、ユーザーランド上にLinux環境、今はBash on Ubuntu on Windowsと呼ばれる仕組みが利用できます。今後は、UbuntuだけではなくFedora, openSUSEも取り込まれる予定の他、Linux kitという仕組みについてもウォッチする必要があるかと思います。

さて、有効化していきましょう。

有効化には2つの手順を経る必要があります。


  • 開発者向け機能の有効化

  • WSLの有効化


1.1. 開発者向け機能の有効化

では、まずは開発者向け機能を有効化します。


  1. Windowsキー → 歯車マークの「設定」をクリック ホーム


  2. 「更新とセキュリティ」をクリック
    設定画面


  3. 「開発者モード」のラジオボタンをクリック

    開発者向け機能の有効化



WSLの有効化

次にWindows Subsystem for Linuxを有効化します。


  1. 画面左下のWindowsマークを右クリック

  2. 「コントロールパネル」をクリック

  3. 「プログラムと機能」をクリック

    2017-05-13 (1).png

  4. 「Windows Subsystem for Linux (Beta)」をクリック
    2017-05-13 (2)_LI.jpg

  5. PowerShellを管理者として起動します。Windowsメニュー内の「Windows PowerShell」を右クリックし「管理者として実行」をクリック

    2017-05-13 (6)_LI.jpg

  6. 下記コマンドを実行します。

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

  7. PCを再起動してください。

  8. コマンドプロンプトを開き、「bash」を入力・実行してください。Unixユーザの作成のためユーザ名を入力して完了です。


2. Ansibleのインストール

Bashが使えるようになったので、Ansibleを入れていきます。

この順序で進めていきます。


  1. PPA(ppa:ansible/ansible)の追加

  2. Ansibleのインストール


2.1. PPAの追加

PPAとは、personal package archiveの略で、一般的には公式ではないパッケージを公開しているdebパッケージのリポジトリを指します。

Ansibleは、Ansibleコミュニティがansible/ansibleという名前で公開しているため、このPPAを追加します。

$ sudo apt-add-repository ppa:ansible/ansible


2.2. Ansibleのインストール

sudo apt updateコマンドは、コマンドを実行した時点でインストールすることのできる最新のパッケージリストを取得します。

いきなりsudo apt installを行うと、古いパッケージリストを参照して、思わぬ結果を生むのでapt installの前に忘れずに実行しましょう。

sudo apt update

パッケージリストを更新したら、Ansibleバージョンを確認します。

$ sudo apt list ansible

一覧表示... 完了
ansible/trusty,now 2.3.0.0-1ppa~trusty all

記載当時はバージョンが2.3.0であることが分かります。

では、インストールします。

sudo apt install ansible

Ansibleコマンドを実行してみます。

ansible --version

以下のように表示されればコマンドが実行できるようになっています。

$ ansible --version

ansible 2.3.0.0
config file = /etc/ansible/ansible.cfg
configured module search path = Default w/o overrides
python version = 2.7.6 (default, Oct 26 2016, 20:30:19) [GCC 4.8.4]


[備考] Ansibleのアップデート

今回、ansible/ansibleというppaを追加しましたので、今後Ansibleのバージョンが上がった場合は以下のコマンドでバージョンアップすることが可能です。

# パッケージリストの更新

sudo apt update

# Ansibleパッケージの更新
sudo apt upgrade ansible


3. ついでに


3.1. Bash on UbuntuからWindowsのファイルを参照したい

Windows上のファイルをBash on Ubuntuから参照したい時、Cドライブは/mnt/cのようなパスより参照することが可能です。つまり、Windows上でAnsibleコードを作成し、それをBash on Ubuntuでは/mnt/c/…/playbook.ymlのように参照してAnsibleを実行するということが可能です。

ただ、WindowsからBash on Ubuntu上のファイル、またはその逆の編集は避けた方が良いとのことです。(文字コード、改行コードなど合わせれば大丈夫です)


3.2. Ansible Container

こちらの記事も見てみてください。AnsibleからDockerコンテナを作成する方法として、Ansible Containerを紹介しています。

Windows 10はもちろん、macOS、Ubuntuをお持ちの方向けにも、DockerのインストールからAnsible Containerをインストール・操作する手順を記載しておきました。

Ansible Containerで始めるAnsibleからのコンテナ作成(v0.9.0対応)


あとがき

Subsystem for LinuxはBash on Ubuntu on Windowsという別名の通り、Ubuntuで普通に出来ていることがWindowsでも(ほぼ)出来るようになりました。

AnsibleもWindowsの広範囲を対応してきていますし、Windos ServerにもWSLの搭載が決まっています。WindowsからAnsibleでWindowsを管理する日が来るのももう少しですね。