はじめに

Ansible をWSL2で使うために入門する。

環境

1
2
3
4
Windows 10 Professional

WSL2 (Ubuntu 22.04LTS)
ansible [core 2.15.2]

Ansibleのインストール

下記を参考に WSL2 (Ubuntu22.04 LTS)にインストールする。 https://docs.ansible.com/ansible/2.9_ja/installation_guide/intro_installation.html#ubuntu-ansible

1
2
3
4
sudo apt update
sudo apt install software-properties-common
sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt install ansible
1
ansible --version
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$ ansible --version
ansible [core 2.15.2]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/horiba/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3/dist-packages/ansible
  ansible collection location = /home/horiba/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] (/usr/bin/python3)
  jinja version = 3.0.3
  libyaml = True

ansibleコマンドを使ってみる

ansible コマンドを使って、 pinglocalhost に実行してみる。

1
ansible -m ping localhost

成功!

1
2
3
4
localhost | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

playbookを使ってみる

localhost で使うので、inventoryは設定しない。

playbookの準備

playbook.yml

1
2
3
4
5
6
- hosts: localhost
  tasks:
   - name: playbook-test
     file:
       path: /tmp/test.txt
       state: touch

playbookコマンドの実行

1
ansible-playbook playbook.yml 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
$ ansible-playbook playbook.yml 
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

PLAY [localhost] ***********************************************************************************************************************************************************************************************

TASK [Gathering Facts] *****************************************************************************************************************************************************************************************
ok: [localhost]

TASK [playbook-test] *******************************************************************************************************************************************************************************************
changed: [localhost]

PLAY RECAP *****************************************************************************************************************************************************************************************************
localhost                  : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
1
2
$ ls /tmp/test.txt 
/tmp/test.txt

指定通りのタスクが実行できることが確認できる。

参考

おわりに

Ansible を今まで使おうと思いつつも使えていなかったので、まずは Hello,World的なことを実践した。
今後もう少し使えるように試していきたい。