『Pythonエンジニア養成読本』読書会便り ~基礎やTipsから質疑応答の内容まで~

第5回 環境構築の自動化,活躍の場が広がるPython

この記事を読むのに必要な時間:およそ 7 分

はじめに

鈴木たかのりです。

前回に引き続きPythonエンジニア養成読本という書籍の読書会イベントについてレポートします。

今回が最終回となる第5回の読書会は9月17日(木)にアライドアーキテクツ株式会社の会議室で開催されました。

当日はだいたい以下のタイムテーブルで進めました。

  • 19:00-19:15 参加者の自己紹介
  • 19:15-20:50 ⁠第6章 環境構築の自動化」
  • 20:50-21:00 ⁠Appendix 2 活躍の場が広がるPython」
  • 21:00-22:00 ビアバッシュ(ビールとピザでの参加者懇親会)

今回も今までと同様に書籍の読みあわせはせず,補足情報や質疑応答を中心に解説を行いました。

自己紹介

最初に参加者の自己紹介です。この読書会の3日前に開催されたAnsible Meetup in Tokyo 2015.09に参加して,今日は違う話が聞けるかなと思って参加した方や,会社ではChefを使っているがAnsibleに切り替えたいと思っている方,業務などで普段Ansibleを使用している方などさまざまな人がいました。

第6章 環境構築の自動化

一通り自己紹介を終えると,第6章の著者の若山史郎@r_rudiさんから自己紹介がありました。

若山史郎さん

若山史郎さん

第6章のAnsibleでの環境構築の章の執筆担当で,普段の業務ではGoでプログラミングをしていてPythonは書いていないそうです。以前は仕事でもPython書いていたとのこと。会社ではWebアプリの開発から運用までをカバーしているため,Ansibleも業務で使用しているとのこと。

この書籍の執筆では,入門Ansibleという書籍を出しており,それで声がかかったそうです(まぁ,筆者が声をかけたようなものですが)⁠

自己紹介の様子

自己紹介の様子

この章で使用するAnsibleはPythonで書かれていますが,普通に使用する分にはPythonでのプログラミングは行いません。とはいえ,拡張を作成するときにはPythonが必要となります。

と,ここで読書会の本題に入ろうとしたのですが,若山さんは書籍のPDFを用意しておらず,本を読みながら進めようと思っていたとのこと。それでは参加者がどこを話しているかわかりにくいので,急遽書籍のPDFデータを著者間で受け渡し,それを画面に表示するというグダグダな感じでスタートしました。

6-1 環境構築をなぜ自動化すべきか

この節ではAnsibleの前に,なぜ環境構築を自動化するのか,そのメリットについて解説しています。

環境構築の対象となるサーバ台数が1台,2台と少なければ手作業でも問題ありませんが,台数が増えていくと手作業ではミスが発生する可能性が高いため自動は必須です。自動化を行うのであれば,それはAnsibleではなくChefPuppetでも問題ありません。

以下の書籍にも載っている図はAnsibleを想定しています。Ansibleは対象サーバ(環境を構築する対象となるサーバ)にsshで接続して環境構築を行います。これは,対象サーバにエージェントと呼ばれるプログラムをインストールする必要があるChefとは異なります。

環境構築の自動化

環境構築の自動化

また,環境構築の手順をGitなどのリポジトリでバージョン管理することにより,うまく動作しない場合に元に戻したり,差分などの確認が行えるのが便利とのことです。

最近,SIerなどからも「Ansibleを使いたい」という話がよく聞かれるそうです。理由としてはChefなどはエージェントをインストールする必要があるため,そこがお客さんにいやがられるそうです。そのため,エージェントが不要なAnsibleが向いているとのことです。

ここでは以下の様な質疑応答がありました。

Q:Ansible以外にもエージェントが不要でsshだけで動作する環境構築ツールはあるか?

A:最近はChefやSaltStackもエージェント不要で動作するようになってきている。これらは途中から思想を変えてきたが,最初から設計がssh前提のAnsibleのほうが筋がいいのではないかと考えている。

Q:Windowsの環境構築で使用可能か?

A:WindowsとはWinRM(Windows Remote Management)経由で接続しPowerShellでの環境構築が可能。しかし,まだ洗練はされていない。

Q:Chefのようにエージェントをインストールする利点はなにか?

A:sshが通らない環境ではエージェントが必要となる場合がある。Ansibleにもansible-pullというコマンドが付属しており,cronで最新の手順を取得して自分自身の環境に適用するといった使い方ができる。この使い方はエージェントっぽくもある。

著者プロフィール

鈴木たかのり(すずきたかのり)

部内のサイトを作るためにZope/Ploneと出会い,その後必要にかられてPythonを使い始める。

現在の主な活動はPyCon JP 2015座長,一般社団法人PyCon JP理事,Python ボルダリング部(#kabepy)部長,Python mini Hack-a-thon(#pyhack)主催,Plone User's Group Japanなど。

共著書に『Plone完全活用ガイド(2008 技術評論社刊)』『Plone 4 Book(2011 Talpa-Tech刊)』『Pythonプロフェッショナルプログラミング 第2版(2015 秀和システム刊)』『Pythonエンジニア養成読本(2015 技術評論社刊)』がある。

趣味は吹奏楽とレゴとペンシルパズル。

Twitter:@takanory

Facebook:鈴木 たかのり

サイト:takanory.net

コメント

コメントの記入