Ansible Advent CalendarでAnsibleのTipsを共有しましょう! atndなどでは無いようなので、Qiitaに作ってみました。

多種多様な構成のサーバーを Ansible で管理する場合、単一のベストプラクティスツリーに押し込むのは管理が大変すぎて現実的ではないなとおもい、どうしたものかなと悩んでいました。で、最近やっとこれかなという構成ができたので共有してみます。 何が問題か? ロールには共用できるものとできないものがある、それがいっしょこたに混ざるのが嫌 無理に共用できるようにと変数を多用するととても管理が大変。変数も覚えられないし、テストが大変 読み込むファイルのパスが大元のymlからの相対パスであり、include ではディレクトリ階層での整理が難しい -l で対象サーバーを絞り込んでも全てのタスクが表示され、skipped, skipped, skipped と関係ない task 表示がターミナルが埋まって見づらい そして、たどり着いたオレオレベストプラクティス まとめて管理したいサーバーグループ毎にベス
Ansible を15分程度で「もう使えそう」と感じてもらうために書きました。 Ansible はプロビジョニング用アプリケーションです。 同じ目的のものでは Chef、Puppet などがあります。 Ansible の特徴だと感じたのは、とても簡単ですぐ実用できることです。 Chef で挫折してしまった私(不勉強ですみません)も、一日で仕事で必要なことができました。 簡単というと Fabric (やCapistrano) がありますが、環境構築やデプロイには Ansible が強いと感じます。 Python で書かれたものですがユーザーは YAML でタスクを書きます。 以下の作業で Python は出てきますが、Ansible をインストールする以外では本質的に不要なのでご安心(?)ください。 次を前提とします。 Vagrant に Ubuntu 13.10 が用意されていること Ma
MySQLのマスター1台、スレーブ2台、mysql-master-haのマネージャ1台の計4台構成です。 4台すべてを起動するとトータルで3.5GBほどメモリを使用しますので、ご注意ください。 手順は全部Ansibleで自動化してもよかったのですが、それだとフェイルオーバーの動作がよくわからないかと思ったので、レプリケーション、HA構成の設定は手動です。 HA構成にはmysql-master-haを使用します。 準備 VirtualBox、Vagrant、Ansibleはあらかじめインストールしておき、ターミナル上でコマンドが実行できるようにしておいてください。 OSはCentOSを使用します。 以下のコマンドでCentOS6.5のボックスを追加します。
/etc/ansible/hostsに置くか、適当なとこにおいて-i(--inventory)オプションないしANSIBLE_HOSTS環境変数でパスを指定。 なおInventoryファイルに実行権限(+x)があるとDynamicInventoryと勘違いされ、実行できないよ!!みたいなエラーが出るので注意。Windowsの共有フォルダをマウントしたら全ファイルに+xついてて嵌りました。 これ作るの面倒 カンマで区切れば引数で直接指定できるようです。カンマで区切れば、なので、一つだけ指定したい時も先頭か末尾にカンマをつける必要があります。 http://stackoverflow.com/questions/17188147/how-to-run-ansible-without-specifying-the-inventory-but-the-host-directly https://g
Ansileシンプルで好きで使ってますが、たまにパフォーマンスが気になってました。 つい先日Ansibleの公式ブログにパフォーマンスチューニングのtipsが書かれてたので自分が知らなかったところを中心に紹介します。 常識的なものも多いかもですがご容赦ください。 パッケージインストールを効率化する yumとかでパッケージインストールとかするならローカルのMirrorレポジトリを使おう。 reposyncとか使うと簡単にMirrorが作れて良い。 複数パッケージのインストールはwith_itemsを使って一つのトランザクションにしよう。 forksで並列度を設定する 同時にAnsibleのタスクが走るのはforksで決まる。 デフォルトは5だけど保守的なので増やした方が良い。50とかでも良いし、500以上にしてるケースもある。 Ansible1.3からはどんなに増やしても設定対象ノード数を超
コマンド1発で理想の環境ができあがるとうれしいですよね!僕は、嬉しいです!! 開発環境や、本番環境など用途は色々ですが、同時にサーバーを幾つか建てて、動かして、削除する際にはVagrantと構成管理ツールが便利です。Chefとかpupetとか色々とありますが、手軽に定義ファイルを作って利用できるAnsibleを今回は利用します。 今回は、同じアプリケーションが動作しているけど参照しているDBが異なる5つのインスタンスの起動を行います。アプリケーションのデプロイが完了したamiからインスタンスを起動し、設定ファイルをホスト毎に切り替えます。 Vagrantfileを作る EC2を利用するので、vagrant-awsプラグインを事前に入れておいてください。 # -*- mode: ruby -*- # vi: set ft=ruby : # Vagrantfile API/syntax ver
はじめに Ansible 1.7よりWindowsの操作ができるようになったので、実施するための準備を書き出してみる。 (2015-01-18: 現状に合わせて大きく書き直した) (2015-03-27: 「Ansible 1.9.0.1を使用する場合の追加作業」を追加) (2015-04-29: 1.9.1で「Ansible 1.9.0.1を使用する場合の追加作業」が解決されたため、文章を修正) (2016-02-27: やっと時間が取れたので遅ればせながら文章を2.0に対応) (2016-04-17: ネットワークプロファイルがパブリックでも利用できるようになっていたのとansible_winrm_*が1.9.5にバックポートされていたのに対応) (2017-06-03: 2.3.1でpython 3でも動作するようになった) 今回の環境 最初に試した段階では以下の通り: 操作されるW
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Ansible コーディング規約 (の例) (これは http://tdoc.info/blog/2014/10/09/ansible_coding.html の転載です) edX がgithub上でAnsibleのコーディング規約を公開しています。 https://github.com/edx/configuration/wiki/Ansible-Coding-Conventions このリポジトリは GNU AGPLv3です。翻訳の場合でもおそらく大丈夫だと思いますので、ここで翻訳して公開してみます。 一般 YAMLファイル すべて
タイトルの通り、去年のAdventCalendar1日目(2013/12/1)から今日までの開発状況や採用実績・イベント・参考書について調べてみました。 技術的なTipsは一切ありません。。 Ansibleについて そもそもAnsibleって何? AnsibleはPython製の構成管理ソフトウェアです。 サーバのミドルウェアやアプリケーションのインストール/設定を自動かつ高速に実現できます。 v1.8でWindowsにも対応しました。 ThoughtWorks社が公表するTechnologyRader2014/07版では、「導入を推奨」となりました。 ThoughtWorks社内でも実際に採用された実績があり、推奨となりました。 http://www.thoughtworks.com/radar/tools http://www.thoughtworks.com/radar/tools/
ansible-sample ├── hosts ├── playbooks │ ├── include │ │ ├── apache-install-playbook.yml │ │ ├── common-playbook.yml │ │ ├── nginx-install-playbook.yml │ │ ├── php-install-playbook.yml │ │ ├── postfix-install-playbook.yml │ │ └── wordpress-install-playbook.yml │ ├── webserver-playbook.yml │ └── dbserver-playbook.yml │ └── templates └── apache-vhosts.conf.j2
概要 AnsibleでMacの開発環境構築を自動化してみたので、やった事や調べたものをメモしておく。 Boxenみたいなのをansibleでやりたいなぁと思ったのがきっかけ。なのでour-boxen(テンプレ)みたいなのと、それをコピーしてカスタマイズした自分専用のリポジトリの二つを用意した。 https://github.com/tell-k/blister-pack .... 基本的なセットアップ内容 https://github.com/tell-k/blister-pack-mine ... 自分個人のセットアップ内容 blister-packの利用方法はREADME.rstを参照してください。 以下のような事をやった。 Mac OSX の開発環境構築をansibleで自動化する。主にhombrew + homebrew-caskで必要なパッケージをインストール Boxenのように
2020年にはもっと便利な方法があるのでこちらの記事を参照してください HerokuにHaskellで作ったWebサービスを公開する簡単な方法 - Qiita Haskell on Herokuを使ってHerokuにHaskellのアプリを公開する方法を残しておきます。Haskell on Heroku は Halcyonを利用したHerokuの buildpack です。 Haskellのアプリは依存ライブラリのビルドに時間がかかってしまい、Herokuへデプロイする時は15分制限に簡単に引っかかってしまうので工夫が必要です。Halcyonは別のサーバー(Amazon S3)に環境を保存しておくことでインクリメンタルビルドを可能にしてくれます。 始めに新しくHerokuのアプリを作り buildpack を設定しておきます。 $ heroku create -b https://gith
まだ資料が少ないようなので、備忘録を置いておきます。 環境: Mac OS X 10.8 Mountain Lion ruby 1.9.3p194 Rails 3.2.8 おおまかなステップ 1.Elastic Beanstalk の利用登録(AWSへのユーザ登録) 2.Beanstalk の設定(AWSのウェブGUI) 3.eb(AWS Elastic Beanstalk Command Line Tool )のインストール(ローカル環境) 4.Railsアプリのデプロイ 5.EC2インスタンスの設定(SSH接続) 1.Elastic Beanstalk の利用登録(AWSへのユーザ登録) 1-1.Amazon Web Serviceからサインアップ。以下略。 2.Beanstalk の設定(AWSのウェブGUI) 2-1.AWS Management Console から Elasti
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く