Ansible モジュール貢献への道のり

Ansible

もう 3 週間も前の話になりますが Ansible Meetup in Tokyo 2015.09 というイベントがあり、ライトニングトークの枠を頂いて喋ってきました。

そこでは自作の Ansible モジュールの紹介と、 Ansible モジュールの配布と宣伝、そしてアップストリームへの貢献 (自作モジュールを Ansible 標準モジュールにしてもらう) といったことについて話しました。今回の記事はその後日談のような内容です。

スライドは Speaker Deck にアップロードしてあります。

現在 Ansible のリリースに同梱される標準モジュール群は GitHub の ansible-modules-core および ansible-modules-extras の 2 リポジトリに分けて収録されており、 新規モジュールの追加を希望する人はまず extras リポジトリにプルリクエストを出すことになっています。

拙作のモジュール blockinfile も標準モジュール化を目指していたことから お盆の頃にプルリクエストを出したのですが、 これが実に 1 ヶ月以上の間、 誰からもコメントされず放置されることになります。 先日のイベントでは、 この件についてライトニングトークの持ち時間を大幅にオーバーしつつ (すみませんでした) 愚痴らせてもらいました。

extras では今年の 5 月頃に新モジュールの審査をコミュニティで行う試みが導入され、 この時に新規モジュール追加のプルリクエストは 既存モジュール作者 2 名による推薦により受け入れるという基準が決められました。 しかしながら現在の Ansible コミュニティの状況では、 私のように既存モジュール作者に全くコネのない人が 新規モジュールを追加するのはこの基準では難しかったように思います。

ここは Ansible としても改善が必要と考えていたようで 9 月末にこの基準を変更するというアナウンスがありました。 リポジトリの文書もこれに合わせて改訂されています (詳しい経緯は Robyn Bergeron さんのブログ記事を参照)。

ざっくりまとめると、既存モジュール作者でなくとも 新規モジュール追加のレビューに参加できるように基準を緩和したということです。 加えて、新規モジュール追加プロセスの運用ルールが新しく決められました。

さらにコアチームメンバーが適用する GitHub のイシューラベル (new_module とか community_review とか) を使った運用フローの詳細がこのダイヤグラムで説明されています。

当初からの個人的な感想として、 こういうのは Gerrit とか使えばいいんじゃ?などと思ってましたが、 Ansible は GitHub のプルリクエストとイシューシステムの仕組みを 最大限活用してやっていく方針のようです。 新しい運用ルールがうまくいくことを願っています。

アナウンスの効果もあってか、 blockinfile のプルリクエストにもさっそく具体的なレビューや works_for_me (なぜか worksforme ではない) のコメントがつくようになり、 標準モジュール化の目標達成に向けてようやく進み始めた感があります。

また放置プレイされていた期間がだいぶ長かったもので、 反応があることは本当にありがたいと身に沁みて感じました。 私もこれからは自分のモジュールをプルリクエストするだけでなく 他人のモジュールのレビューにも参加することで Ansible コミュニティに貢献していきたいと思います。

2015/10/04 18:11:40 JST