(小ネタ)WSL1.0+Ansibleのセットアップメモ


概要

今更ですが、WSL1.0でAnsibleを利用するときの話です。
WSLで使用するLinuxを、Windows Storeから入手できない場合の方法も含めて。
Ansibleのインストール手順は、WSL以外でも利用できる(はず)

環境

  • Windows10(1809) + WSL1.0
  • ubuntu18.04
  • ansible2.9.4

WSLとは?

Windows Subsystem for Linux
ざっくりいうと、仮想マシンが無くても、Windows上でLinux環境を利用できます。
1.02.0で仕組みが異なったりしますが、詳細は割愛します。
ここでは1.0を使用します。

WSL機能のインストール

Windowsの機能の有効化または無効化またはPowerShellから実施します。
詳細は、こちら1を参照ください。

WSLで使用するLinux(ubuntu)のインストール

ここでは、サイドローディング2によるインストールを行います。
 
1.インストール用イメージ(ubuntu)のダウンロード
2.PowerShellを起動し、下記コマンドを実行

PowerShell
Add-AppxPackage <1.でダウンロードしたファイル>

3.Windowsのスタートメニューから、「ubuntu」を起動
4.ウィザードに従い、ユーザとパスワードを入力
 ユーザとパスワードは、任意(例えばhogeとか)でOKです。
 ※ユーザ名:「admin」はNGでした。

WSLの初期設定

この記事3を参考に設定
1. まずはOS更新
※社内Proxy経由では、/etc/profileの最後尾あたりにプロキシ情報を書き込み、source /etc/profileを実行しておけば大丈夫。sudoで外部に通信するときは、-Eをお忘れなく。

/etc/profile
$ sudo vi /etc/profile

~/etc/profileの最後尾に以下を追記~
export http_proxy=http://<IPアドレス>:<ポート>
export https_proxy=http://<IPアドレス>:<ポート>
export HTTP_PROXY=http://<IPアドレス>:<ポート>
export HTTPS_PROXY=http://<IPアドレス>:<ポート>
export no_proxy=<自身のIPアドレス>

~vi 終了後、設定を反映~
$source /etc/profile
  1. アップデートは以下の感じ。
bash
$ cd /etc/apt
$ sudo sed -i.bak -e "s/http:\/\/archive\.ubuntu\.com/http:\/\/jp\.archive\.ubuntu\.com/g"  sources.list
$ sudo apt upgrade -y && sudo apt dist-upgrade -y && sudo apt autoremove -y

Ansibleのインストール

  1. curlでpipインストール
bash
$ cd ~
$ sudo apt install python3-distutils -y
$ curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
$ sudo -EH python3 get-pip.py
  1. pipでAnsibleをインストール
bash
$ sudo -EH pip install --upgrade pip
$ sudo -EH pip install ansible
$ sudo -EH pip install pywinrm ※AnsibleでWindowsを操作する場合に必要なモジュール
  1. インストール結果を確認
$ ansible --version
  config file = None
  configured module search path = ['/home/hoge/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.6/dist-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.6.9 (default, Nov  7 2019, 10:44:02) [GCC 8.3.0]

Configファイルがないので、必要に応じて、適当に作成、またはどこかから持ってくる。
(無くても動作するので、時間のある時に調査予定です。)

これで、Ansible+Windowsの環境構築自動化に向けた第一歩が踏み出せるかも?