Ansibleを触ってみた。spiffieldLabsspiffieldLabs検索メインメニューコンテンツへスキップinformation検索:覚書Ansibleを触ってみた。sacrifsコメントするTweet以前会社の開発用サーバを作るときに、Chefを使おうかと思っていたけれど、時間的な制約もあったので、使わずに構築してしまいました。今後のことを考えると、やはりこういう構築作業は自動化できるようにしたい...、ということで、方法を調べていました。Chefの入門的な記事も試していたのですが、Chefより事前の準備が少なくて済むらしい、というAnsibleを学んでみることにしました。サーバ構築の仮想化や自動化について学びたくて、「プログラマのためのDocker教科書」と「サーバ/インフラエンジニア養成読本DevOps編」を購入したのですが、Dockerよりも先にこちらをやったほうがよいかも、という思いもあり、ちょうどAnsibleの記事があったので、こちらをやってみました。先に、下記記事でとりあえずVagrantとAnsibleが実行できる環境を作ってから本に倣って進めていました。さくらのナレッジ本のAnsibleの記事、ソースも説明があって、勉強になったのですが、途中に存在しないファイルがあったり、エラーが出ても入門したて過ぎてわからずハマったりしたので、第3章「Ansible[実践]」を試して困ったことをメモしてみます。出てくるJinja2ファイルのサンプルが無いわかるでしょ、ということで存在していないのだと思いますが、ちょっと困りました。httpd.conf等は途中までインストールしたうえで、コピーして持ってくるのが早かったです。/vagrant/httpd.conf.j2などとすればOKのはず。pg_hba.conf.j2も同様にコピーして、記事のとおりに編集すれば動作しました。一度、Playbookを実行して、postgresqlの箇所でエラーを発生させれば、元ファイルができるので、それを上記同様にコピーして編集します。vhosts.conf.j2は自分で作ればOKのようです。</Directory></VirtualHost>.env.j2も自作で代用しました。APP_ENV={{deploy_laravel_env}}APP_DEBUG={{deploy_laravel_debug}}APP_KEY={{deploy_laravel_app_key}}DB_CONNECTION=pgsqlDB_HOST={{db_host}}DB_DATABASE={{db_database}}DB_USERNAME={{db_username}}DB_PASSWORD={{db_password}}途中に出てくるzzmyphp.iniは空のファイルでも問題ありませんでした。設定ファイルの書き方YAMLファイルは今回はじめて書いてみたんですが、何かが難しいわけではなく、ぱっと見てわかるのが良いですね。タブが使えず、スペースで書く必要があったり、commandとshellの使い分けがよくわからなかったりしましたが、書き間違い以外ではそれほど困らなかったです。state=presentのスペルミス(precentって書いてあった)、スペースが全角になってる、role_attr_flags=CREATEDB,NOSUPERUSERのカンマの後にスペースを入れてエラー等、いろいろ体験しましたが、エラー文をもうちょっと注意深く読めば解決が早かったかもしません。最初意味がわからなかったので、無視して書いてしまいました。実行時に全然違う場所でエラーになったので、原因がつかめず困りました。creates=/usr/bin/composerここの最初の–はどういう意味なんでしょう?オプションを指定する際に必要なもの?なんでしょうか。artisanも何?って思ったんですが、これはComposerのコマンドラインインタフェースだそうです。Qiitaひとまず、Ansibleの設定の仕方と、第4章の設定の作法を学んだので、他のPlaybookを持ってきてテストサーバを構築したりできそうです。vagrantと一緒に使って、何度も壊したり入れたり試せるのがいいですね。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。2016/04/21Ansibleを触ってみた。