てくなべ (tekunabe)

ansible / network automation / 学習メモ

[Ansible] Pull Request のコードを試す方法

はじめに

Ansible は GitHub 上で日々開発が進められています。 バグや要望などは Issue にあげられ、実装は Pull Request にあげられます。

Pull Request にあげられた追加、修正コードのうち、ansible/ansible リポジトリ にマージされていないものは、そのままで試すことはできません。ちょっとした手順が必要になります。

手順は、以下の公式ドキュメントに記載されています。

docs.ansible.com

先日、ある Issue にコメントしたところ「直した Pull Request を出したから、試してみて(意訳)」と依頼ががあって、実際試しました。 手順例として具体的な値を利用して手順をまとめておきます。


試したい対象の Pull Request

対象は以下の Pull Request です。

github.com

きっかけの issue はこちら


手順

リポジトリのクローン

まず、普段実行している Ansible とは別の県境環境を用意するためにクローンします。

git clone https://github.com/ansible/ansible.git ansible-pr-testing
cd ansible-pr-testing

ブランチの作成と修正コードのマージ

作業用のブランチを作成して、修正コードをマージします。

対象 Pull Request #66119

Akasurde wants to merge 1 commit into ansible:devel from Akasurde:fortios_fix

と記載があるように、Akasurde さんのリポジトリの fortios_fix ブランチで修正されたものを、ansible/ansible の devel ブランチにマージしてほしいという、Pull Request です。

これらの情報から、以下の指定をします。

  • 作業用のブランチ名は testing_PR66119
    • 本当はなんでもいいのですが、公式ドキュメントの testing_PRXXXX という名前の付け方にあわせています
  • pull 元は https://github.com/Akasurde/ansible.gitfortios_fix ブランチ
git checkout -b testing_PR66119 devel
git pull https://github.com/Akasurde/ansible.git fortios_fix

環境のセットアップ

以下のコマンドで開発環境のセットアップを行います。各種パスの設定などが行われます。

source ./hacking/env-setup

テスト と Pull Request へのコメント

ここまでで準備ができたので、実際に試したい Playbook を実行。 うまくいったので、その旨を Pull Request へコメントしました。

Fortios: Correct underscore_to_hyphen API by Akasurde · Pull Request #66119 · ansible/ansible · GitHub


おわりに

まだマージされていない Pull Request のコードを試す方法をまとめました。 Git / GitHub の使い方を知っていれば、そんなに特別なことはないかも知れませんが、公式ドキュメントとして手順がまとめられいるのはとても親切だと思いました。

Ansible は、自動化対象のソフトウェア、機器、プラットフォームが多岐に渡ります。そのため、コード修正者自身では検証しきれないケースもあります。 今回のように、修正自体はしていないものの、自分の環境で試すことも貢献のひとつと考えて今後も OSS と付き合っていきたいと思います。