【初心者歓迎】Ansible始めてみたい人はまずはAnsibleもくもく会に参加してみよう！ (2020.12 リモート・環境について追記)

2020.12.30、下記追記しました

- 感染症対策のため全てリモート参加になっている
- 配信はDiscordを使用
- code-server(ブラウザ版VS Code)が使用可能
- 次回メンター候補枠の説明追加
- オンラインAnsible飯

---

[Ansibleもくもく会 （サーバ編 & NW編）2019.11 - connpass](https://ansible-users.connpass.com/event/153064/)に参加しました。

~~ノベルティ欲しさに無謀にも~~Ansibleユーザが少しでも増えたらいいなと思い、この会の「ブログ枠」で参加して「Ansibleもくもく会ってどんなところ？何ができるの？Ansibleに入門したい人こそ参加して欲しい！」みたいな内容で記事を作成してみました。

![eFc4JBia.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256859/5a9a0d70-b19d-8d83-55fc-a84cde74eee6.jpeg)
(開場直前の様子)

※ 本記事は運営とは関係ない一参加者目線として作成されていますので、コミュニティ公式の説明ではないことをご了承ください。

# そもそも"もくもく会"って何？

一言で言うと自習する会です。

[もくもく会のススメ - Qiita](https://qiita.com/kobake@github/items/68528dfa24ec159ce617)

いわゆる講義形式の「ハンズオン」や、一つのテーマに取り組んでモノづくりをしたりする「ハッカソン」とは異なり、基本的には一人で黙々と自習する会です。

# 「Ansibleもくもく会」とは

タイトルの通りAnsibleをテーマにしたもくもく会です。
Ansibleを動作させるための「環境」が提供されるだけでなく、「教材」と「メンターのヘルプ」もあります。
この教材とメンターのヘルプがAnsibleもくもく会ではとても充実してるので、初学者の方には特に本当にお勧めします！

# Ansible初学者の障壁

(と私が勝手に思っていること…)

## 環境の用意

プログラミングであれば、普段使うPCにコンパイラとかIDEとか開発環境をインストールすればHello Worldから割とすぐに始められるけれど、Ansibleはその辺りがちょっと勝手がちがう。
というのも、Ansibleを実行するマシンと、構築対象のマシンというように、複数のVM環境があるほうが試しやすいしわかりやすいのに、「これを入れればオールインワンでセットアップ完了」みたいなものが無いので、ちょっと大変。

複数マシンの用意というと個人だとHyper-VやVirtualBoxといった仮想環境やAzureやGCPといったパブリッククラウドでVMを複数作成し、VM間で通信できるようにして、Ansible検証用の環境は作ることはできるけど、慣れていなければ、その準備だけで半日や1日かかってしまう。

また、Ansible自体のインストールも何パターンか(`pip`でインストールしたり、`yum`などのパッケージでインストールしたり、パッケージインストールも使うリポジトリでバージョンが異なったり…)あるため、そもそもどんな構成で"Hello World"すればわからない、という人もいると思います。

Ansibleもくもく会では、参加者一人一人に、Ansibleをすぐに実行できる環境・構築対象の環境が用意されます。開始と同時にAnsibleコマンドを実行できます。

## 何から始めるか

「業務で毎回この手順書の通りの構築やってるけど、この内容なら絶対に自動化できるはず…」みたいに、やりたいこと(ゴール)が明確だったり、[購入した入門書](https://www.amazon.co.jp/dp/4295007641/)に沿ってガッツリやってみる人なら大丈夫だと思いますが、「Ansibleでできることってどんなことだろう」みたいなチュートリアル的なことをやろうとすると、題材をどうするかは(入門書や解説サイトはいくらでもヒットするので)意外と難しい。

インベントリ？プレイブック？ロール……？？

Ansibleもくもく会では、初心者の人でもある程度の分量をこなせる入門用のワークショップ教材が用意されています。

__もくもく会と言うと、ある程度内容を習熟して「課題を準備してもくもく会の間にやることを考えてから参加」しないといけないという印象があるかもしれませんが、Ansibleもくもく会ではその準備は必須ではありません。__
「完全初心者なんでAnsibleで何ができるか知りたい」という人でも参加できます。
※ Linux操作の基礎知識は必要ですが…

もちろん自分で準備した自動化の課題をやるために参加するのもOKです。

## 分からないことを質問したい

書籍でもwebサイトでも、学習中に不明なところがあるときに詳しい人に質問できたらいいですよね。

Ansibleもくもく会では、(回答はベストエフォートですが)メンターとして参加してる方(や、Red Hatの技術者)に、「もくもく会の環境・教材の不明点」「もくもく会で作業しててわからないこと」「__普段からAnsible使ってて疑問に思ってること__」を質問することができます。
「〇〇ってモジュールの使い方がわからない」みたいな質問もあれば、「ディレクトリ構成のベストプラクティスは初学者にも意識させるべき？」みたいな自社メンバへの情報共有の仕方まで、いろんなことを質問することができます。

# 申し込み

申し込みは[Ansible ユーザー会](https://ansible-users.connpass.com/)の各イベントのページから。
まずはconnpassのアカウントを作りましょう。(GitHubやTwitterなどのOAuthが使えます)

## "サーバ編 & NW編"の申し込み

通常開催される「Ansibleもくもく会 （サーバ編 & NW編）」は、申し込み時に「サーバ」か「ネットワーク」かを選択して申し込みます。
~~…と思ってたのですが、選択は任意だった(笑)~~

サーバ編とネットワーク編、参加者の大まかな人数をあらかじめ把握しておくために申し込み時にサーバorNWを選択しますが、当日選んでも大丈夫な模様(ただし環境の数には限りがあるので、申込時に上限に近い場合は開始時に切り替えNGの案内があります)

(あと、クラウドサービス上に環境を構築しており費用もRed Hatさんに出して頂いているそうなので、ドタキャン・無断キャンセルなども極力控えていただければ…)

## 申し込み枠について

__2020年12月現在、感染症対策のため全てリモート参加となっており、通常枠も少し異なります。__

いくつかあります。
狙い目は抽選でなく先着の絶対参加/成果共有/ブログ枠。
意外なことに、もくもく会前日でも枠が空いてる場合があります。

|枠 | 説明 |
|---|---|
|通常枠|抽選です。抽選日にはだいたい倍くらいの倍率になります。|
|絶対行く枠|先着。予定を確定できるならこちらで。台風などで開催自体がキャンセルされた場合は行かなくて大丈夫です:)|
|成果共有枠|もくもく会の最後に、「その日どんなことをやったか」「何がうまくいった(うまくいかなかったか)」を __ざっくりと__ 感想などを発表する枠。あらかじめ資料を準備してLTを行ってもOK。__2020年12月現在はDiscordの画面共有&ボイスチャットで発表するスタイルです。__|
|ブログ枠|その日の成果 __など__ をブログにまとめてアップする枠。__この記事です__。(2020年12月現在この枠は無くなってる？)|
|リモート参加枠|地方在住等で、当日会場に行けない人のための枠。前日までに「connpass イベント管理者からのメッセージ」というメールで中継用のURLが案内されます。|
|次回メンター候補枠|次回以降ほかの参加者のサポート役として参加してもいいというやる気十分な方はこちら。~~(まだ申し込んだことないので詳細わからないですごめんなさい)~~ __この枠で申し込んだ回は通常時と同様にもくもくしていただき(もちろんサポート活動もOK)、次回から「メンター枠」で申し込み可能&メンターとして他参加者のサポート活動をお願いします！__|

成果共有・ブログ・次回メンター候補での参加は、ノベルティがもらえます。  
メンター枠も2回参加するとメンター向けのノベルティがもらえます。

## リモート枠について

__2020年12月現在、感染症対策のためリモート開催のみとなっております。また配信プラットフォームがBlueJeansからDiscordを使用するようになりました__

[Discord | 会話や交流が楽しめるプラットフォーム](https://discord.com/)

OS毎のクライアントアプリも有りますが、ブラウザ上でも同じように利用できるので、好きな方を使用してください。  
アクセスのためのURLは前日までにconnpassからのメール通知で連絡されますので、「connpass イベント管理者からのメッセージ」を見逃さないようにしましょう。

Discord自体の使い方は公式サイトや解説記事を参照してください。

当日になったら連絡されたDiscordにアクセスします。
もくもく会の初めに環境の説明が行われますので、「環境説明」チャンネルのスピーカーアイコンのついたボイスチャンネルに入ります。  
時間になって主催者の説明が始まると「ライブ」という表示になって、横に表示される「配信を見る」をクリックすればライブ配信の画面を見ることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256859/bff76c8f-af51-cf76-3465-8348649126b8.png)

---

以下は旧情報。

リモート枠参加の場合は、事前に通知されたメールに中継用のURLが連絡されます。
リンク先の中継がちゃんと見れるかを確認しておく必要があるので、開始10分前には準備を終わらせておくと良いです。

リモート枠については[tatematsu_sanさんのブログの「Ansibleもくもく会リモート参加の手引き」](https://tenko.hatenablog.jp/entry/2019/10/28/222617)が非常に詳しくまとめられているので、事前に目を通しておくとよいです。

「もくもく会なのにリモート中継！？」と思うかもしれませんが、当日利用する環境のアドレスやメンターに質問するための共有ドキュメントのリンクなどは、「会場のスライドに表示」されており、リモート参加の場合はこれを中継映像経由で確認することになります。

## "サーバ編 & NW編"以外

「地方開催」や「A10編」のような内容で、ときどき開催されます。

[メンターの一人でVMwareのvExpertでもあるsky_jokerさんが「Ansibleもくもく会 with VMwareが出来たら最高よね」とツイートされてたり](https://twitter.com/sky_jokerxx/status/1172525156796780544)するので、そういう会もそのうち実施されるかも🤗

ちなみに[9月開催のA10編](https://ansible-users.connpass.com/event/143281/)での参加者のブログ。

- [Ansibleもくもく会＠Softbank(A10編)に参加しました。 - てんこ](https://tenko.hatenablog.jp/entry/2019/09/14/112702)
- [Ansibleもくもく会(A10編 2019/09/13@Softbank) - Qiita](https://qiita.com/KI1208/items/73a73de353cdbd11ed72)

## 当日必要なもの

__2020年12月現在、[code-server](https://github.com/cdr/code-server)というVS Codeベースのブラウザ上で使用できるオンラインエディタも提供されているので、ChromeブラウザがあればOKです。__
__(シェル上の操作はcode-serverのターミナルから利用できます)__

- PC
    - Tera Termなどのsshが出来るターミナルソフト
    - Chromeなどのwebブラウザ
        - 教材や当日使用する環境についての説明、メンターへ質問用のドキュメント(Googleドライブ)を開くのに使います
        - Ansible Towerもブラウザを使用します
- 電源とWi-Fiは会場にあります

![IMG_20191112_184539.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256859/1d099e48-247d-f4a6-026f-4225f0fa5085.jpeg)

# 教材と環境

教材はconnpassのページに載っています。
GitHubで公開されているので、__教材はいつでも見ることができます。__ 予習も復習も、いつでもできます。

__環境が使えるのは(基本的に)当日__ のみです。
作成したPlaybookやInventoryファイルなどは必要に応じてローカルにダウンロードしておきましょう。

使用する環境は、当日スライドに表示されている説明資料にアクセスし、指示に沿って自分が使用する環境を指定します。
自分がどの環境を使用するかは、共有ドキュメントの環境リストに名前を書くことで確定します。

![2019-11-12_19h14_28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256859/93616a07-a5fb-7057-08e6-15a49176bd5e.png)

環境は以下のように、使用できるサーバやネットワーク環境は一人一式(Ansibleの実行ノード・ターゲットノード・ネットワーク機器)提供されます。(1環境を一人で占有できます)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256859/cb89fcc6-34e6-ac1c-a726-5b2cb9a30197.png)

表示されているIPアドレス・ユーザ名・パスワードでsshアクセスすればログインできます。
code-server(オンラインVS Code)や、Ansible Tower(ユーザ名は`admin`)はリンク先にブラウザでアクセスすれば使用できます。

## サーバ編

[サーバ編教材(日本語版)](https://github.com/ansible/workshops/blob/master/exercises/ansible_rhel/README.ja.md)

まずは環境を確認してみましょう。

```
[student25@ansible ~]$ ansible --version
ansible 2.8.5
  config file = /home/student25/.ansible.cfg
  configured module search path = [u'/home/student25/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Jun 11 2019, 14:33:56) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
[student25@ansible ~]$
```

また、追加されている設定があるかどうかを確認してみます。
(このコマンドの元ネタは、[メンターでも参加されているよこちさん情報 … [Ansible] 見知らぬ Ansible 環境に入った時に確認したいこと - てくなべ (tekunabe)](https://tekunabe.hatenablog.jp/entry/2019/09/23/ansible_first_looking)です)

```
[student25@ansible ~]$ ansible-config dump --only-changed
DEFAULT_HOST_LIST(/home/student25/.ansible.cfg) = [u'/home/student25/lab_inventory/hosts']
DEFAULT_STDOUT_CALLBACK(/home/student25/.ansible.cfg) = yaml
DEFAULT_TIMEOUT(/home/student25/.ansible.cfg) = 60
DEPRECATION_WARNINGS(/home/student25/.ansible.cfg) = False
HOST_KEY_CHECKING(/home/student25/.ansible.cfg) = False
RETRY_FILES_ENABLED(/home/student25/.ansible.cfg) = False
```

## ネットワーク編

- [Cisco編(日本語版)](https://github.com/ansible/workshops/blob/master/exercises/ansible_network/README.ja.md)
- [F5 BIG-IP編(日本語版)](https://github.com/ansible/workshops/blob/master/exercises/ansible_f5/README.ja.md)

ネットワーク機器を操作するモジュールを使ったPlaybookを作成しつつ、Ansibleの学習を進めることができます。

※ なんと今回の2019年11月からF5の教材が用意されました！

## Ansible Tower

サーバ編もNW編も、どちらも自分用のAnsible Towerが提供されます。リンクは環境説明のここ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256859/f7c558e5-8945-7de3-27d4-0d3e75d24206.png)

アクセスすると、Ansible Towerの認証画面が表示されます。
Ansible Towerの章の教材にも載ってますが、ユーザ名は`admin`、パスワードはユーザ毎に提供されているものを入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256859/ad9dfcb3-203d-e14e-b217-3d9dec3bebd6.png)

ログインできればダッシュボードが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256859/2e287856-d674-d00f-8b39-3925b04a67b4.png)

# メンターのサポート

質問は挙手して対面・口頭でやりとりするのでなく、オンラインで行う形式なので、現地会場の人もリモート参加の人も同じようにやりとりすることができます。

質問はGoogleドキュメントを使用します。
こんな感じ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256859/9bf87536-d3db-2105-5d98-54e57a0cdb20.png)

個人的に、この「メンターのサポート」がとても有意義だと思っていて、前述の[初学者の障壁の「分からないことを質問したい」](#分からないことを質問したい)がここで解決できます。
当日のもくもく中にわからなくなった内容でも、普段から疑問に思っていることでも、割と何でも質問可能(※回答は質問を見ているメンターの方のベストエフォートです)で、本当に至れり尽くせりです。

QAサイト・サービスなどは使用せずにGoogleドキュメントのリスト形式での質疑応答なので、質問の便乗や回答の補足・追加質問などはかなり自由にできます。

__サポートに使用したGoogleドキュメントは、もくもく会が終了してもアクセスできる__ ので、時間内に手元に転記しなくても大丈夫です。(URLだけメモしておきましょう)

質問用のポチ(・)がなくなったら、箇条書きボタン(もしくは`Ctrl+Shift+8`)で作ればOKです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256859/b45a57b2-257d-ab1e-ff4c-75dc91592d15.png)

# 会場案内

グッズや[マンガでわかるRed Hat Ansible Automation](http://redhat.lookbookhq.com/jp_ansible_comic)の冊子などもらえます。

![IMG_20191112_183839.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256859/415f548d-9865-5366-f0d3-49e501bfe991.jpeg)

20時以降は玄関が閉まり、外に出ると戻れないので、Red Hat社員の方に連絡が必要なので注意。
終わった後に出るときも、正面は施錠されているので、1Fの通用口から退館します。エレベータで1Fまで降りて、エレベータホールからすぐ左にある非常口の先が出口になります。

# 成果発表

発表枠での参加は、普段はネットワークを触っていてあまりやらないサーバ編でもくもくというお一方。Apache Webサーバのインストールはできたそうです！

今日は発表枠参加が一人だったので、飛び込みで更に数名が発表しました。

---

ちなみに私の成果は…

Ansible Towerを使ったApache Web Serverのインストールまでは成功しました。(前回NW編で参加したときはAnsible Towerうまく動かなかったのでよかった…)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256859/96899ae1-e651-7d76-6acc-93e7a64f5321.png)

あ、ノベルティもいただきました！ありがとうございます！

![IMG_20191113_003205.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256859/aa3b9513-9b49-3425-bf46-d77e77746431.jpeg)

# Ansible飯

調子に乗ってもくもく会の後のうわさのAnsible飯(懇親会)も初参加してきました！

![IMG_20191112_214701.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256859/0197b9cb-612c-035f-571d-34b5a1ab88f4.jpeg)

![IMG_20191112_213945.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256859/60403e6e-d56c-9442-dd19-8f6d90c39f16.jpeg)

楽しい時間を過ごすことができました😇

__2020年12月現在、流れによってはZoomでオンライン飲み会が行われる場合もあるので、参加予定の場合は飲み物・食べ物は用意しておきましょう😋__

# 関連リンク

- [Ansible ユーザー会 - connpass](https://ansible-users.connpass.com/)
- [Ansible is Simple IT Automation](https://www.ansible.com/)
- [Ansible Documentation](https://docs.ansible.com/)
- [Ansible Slack ユーザー Community](https://bit.ly/ansiblejp-slack)
- [Ansible実践ガイド 第3版 - インプレスブックス](https://book.impress.co.jp/books/1118101094)
- [Ansible構築・運用ガイドブック ～インフラ自動化のための現場のノウハウ～ (ひよこ本)](https://www.amazon.co.jp/dp/4839969388)
- [Ansibleもくもく会リモート参加の手引き - てんこ](https://tenko.hatenablog.jp/entry/2019/10/28/222617)
- Ansibleもくもく会教材
    - [サーバ編](https://github.com/ansible/workshops/blob/master/exercises/ansible_rhel/README.ja.md)
    - [Cisco編](https://github.com/ansible/workshops/blob/master/exercises/ansible_network/README.ja.md)
    - [F5 BIG-IP編](https://github.com/ansible/workshops/blob/master/exercises/ansible_f5/README.ja.md)
    - [GitHubのリポジトリ見ると、他にも見えますねぇ…:)](https://github.com/ansible/workshops/tree/master/exercises)