概要
今更ですが、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.0
や2.0
で仕組みが異なったりしますが、詳細は割愛します。
ここでは1.0
を使用します。
WSL機能のインストール
Windowsの機能の有効化または無効化
またはPowerShellから実施します。
詳細は、こちら1を参照ください。
WSLで使用するLinux(ubuntu)のインストール
ここでは、サイドローディング2によるインストールを行います。
Add-AppxPackage <1.でダウンロードしたファイル>
3.Windowsのスタートメニューから、「ubuntu」を起動
4.ウィザードに従い、ユーザとパスワードを入力
ユーザとパスワードは、任意(例えばhogeとか)でOKです。
※ユーザ名:「admin」はNGでした。
WSLの初期設定
この記事3を参考に設定
- まずはOS更新
※社内Proxy経由では、/etc/profile
の最後尾あたりにプロキシ情報を書き込み、source /etc/profile
を実行しておけば大丈夫。sudo
で外部に通信するときは、-E
をお忘れなく。
$ 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
- アップデートは以下の感じ。
$ 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のインストール
- curlでpipインストール
$ 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
- pipでAnsibleをインストール
$ sudo -EH pip install --upgrade pip
$ sudo -EH pip install ansible
$ sudo -EH pip install pywinrm ※AnsibleでWindowsを操作する場合に必要なモジュール
- インストール結果を確認
$ 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の環境構築自動化に向けた第一歩が踏み出せるかも?
-
Windowsストアを経由しないアプリの導入方法
1.インストール用イメージ(ubuntu)のダウンロード
2.PowerShellを起動し、下記コマンドを実行 ↩