WSL2のDebianにAnsibleの最新版をインストールする
Preview版ではなく正式なリリースとなったので、さっそく会社のPCもHyper-VからWSL2に移行しました。
WSL2にはいくつかのディストリビューションを選択できますが、今回はDebian(10.4)を選択しました。
Ansibleについて
アーティスでは、インフラの構築や管理にInfrastructure as Code(IaC)を積極的に取り入れています。昨今のインフラは冗長化することが当たり前になってきており、手作業でサーバー構築を行うには大変な労力が必要です。
GCPなどのクラウドインフラへのデプロイは「Terraform」、VPSなどの構築には「Ansible」を利用し、自動化や再現性を重視しています。
今回は、WSL2上のDebianに「Ansible」をインストールしてみます。
デフォルトのソースパッケージからインストールする
ここからは、WSL2でDebianが正常に稼働している前提で話をすすめます。
ひとまず、デフォルトのソースパッケージでAnsibleをインストールしてみました。
1 |
sudo apt install ansible |
バージョンを確認します。
1 2 |
$ ansible --version ansible 2.7.7 |
デフォルトでは少し古めの2.7.7が入るようです。
現時点(2020年6月2日)では、2.7はメンテナンスされているバージョンなのですが、セキュリティフィックスのみの対応となり、バグの修正は望めないので新しいバージョンをインストールします。
パッケージソースを追加してアップデートする
デフォルトのパッケージソースでは新しいAnsibleをインストールできないので、公式を参考に新しいパッケージソースを追加します。
「/etc/apt/sources.list」を編集して以下を追記します。このファイルには、パッケージの取得元が記入されています。
1 |
deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main |
URLにubuntuが入っているので不安でしたが、問題ありませんでした。
次にaptが外部のパッケージを取り込めるようにキーを設定するのですが、エラーになりました。
1 2 |
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 E: gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation |
先に「GNU Privacy Guard」を追加する必要があるようです。
1 |
$ sudo apt install gnupg2 |
gnupg2をインストールし、もう一度キーを追加するコマンドを実行します。
1 2 3 4 5 |
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 Executing: /tmp/apt-key-gpghome.YHaULyMFz7/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 gpg: key 93C4A3FD7BB9C367: public key "Launchpad PPA for Ansible, Inc." imported gpg: Total number processed: 1 gpg: imported: 1 |
今度は、問題なくインストールできました。
1 2 3 |
$ sudo apt upgrade ansible $ ansible --version ansible 2.9.9 |
Ansibleが2.9.9になっているのが確認できます。
念の為、不要なパッケージを掃除しておきます。
1 |
$ sudo apt autoremove |
最後に実際にプレイブックを実行してみます。
1 |
$ ansible-playbook -i hosts test-task.yml |
問題なく実行できることが確認できました。
まとめ
今回は、Ansibleをデフォルトのソースパッケージからインストールしてアップデートしました。 最初にソースパッケージを設定してからインストールすると最新版になります。
今回のAnsibleのように、デフォルトのソースパッケージからインストールするとバージョンが古い場合が多いです。 最新版を利用したい場合は、公式サイトのドキュメントや他のサイトの情報を参照して適宜インストールする必要があります。

tkr2f

最新記事 by tkr2f (全て見る)
- <Goのパッケージ放浪記> ioパッケージに定義されている「Writerインターフェイス」について - 2020年11月24日
- <Goのパッケージ放浪記> ioパッケージに定義されている「Readerインターフェイス」について - 2020年10月23日
- google/wireを使ってGoでDI(dependency injection)してみる - 2020年8月6日
- GKEにArgo CDを導入してアプリケーションをデプロイする - 2020年7月9日
- WSL2のDebianにAnsibleの最新版をインストールする - 2020年6月16日
最新記事