Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

(翻訳): Ansibleを使ったデプロイに関する一考察¶ (訳注: この記事は Thoughts on deploying with Ansible の翻訳です。著者のRamon de la Fuente さんから許可を得て、翻訳・公開しています。元記事の公開は2014年6月ですが、2015年1月現在にも通用する話だと思います) 私たちのデプロイ手順を簡単にするために Ansible で roleを書きました(以前は Capistrano を使っていました)。このroleは今やかなり完璧で、本番環境に使い始めています。しかし作り始めた当初はいくつかの点で議論する必要がありました。今回みなさんとその議論を共有しようと考えたわけです。 デプロイとは?¶ 最初に "デプロイ" を定義しましょう。デプロイするとき、ユーザーはすでに "Provisioning" を終えており権限なども適切に整って
Ansibleのディレクトリ構成を決める際、プロダクション環境、ステージング環境、開発環境といった環境ごとに異なる設定を変更する方法でしっくり来るものを思いつかず、どうしたものかと悩んでいたのですが、今日見つけたブログ記事でそれもスッキリ解消したのでメモっておきます。 結論 まず結論を。プロダクション環境、ステージング環境、開発環境といった環境ごとに異なる設定する場合は、以下のように対応するのが良さそうです。 ディレクトリ構成は、公式ドキュメントに従う。 Best Practices — Ansible Documentation プロダクション、ステージング、開発など、ステージごとの変数切替は以下のブログを参考に、"group_vars"を利用して行う。 インベントリファイルの中に、"[production:children]"のようなグループすべてが属するグループを作ってしまい、そのグ
明けましておめでとうございます! 設定ファイルの大掃除も兼ねて、自宅Macの環境セットアップをAnsibleで行うようにしてみました。 joe-re/dotfiles · GitHub Ansibleにした経緯 2台のMacの環境を揃えたい 昨年iMac5kディスプレイモデルを購入した。 それによって今までメインで使用していたMacBookAirは外出用にして、2台で運用している。 そうなるとどうやって環境を揃えようかなー、って悩みが発生する。 なるべく外出時も環境は変えずに開発できるようにしたい。 Ansibleに至るまで 当初はBoxen使ってた。 BoxenはPuppetでMacの環境構築を自動化してくれるツール。 PuppetのDSLを覚えなければいけないというハードルはあるものの、 かなり細かいところまで設定できて非常に高機能。 だけどチームならまだしも、個人で使うにはオーバース
(追記:このページの情報は若干古くなっています。Qiitaに紹介記事がありますので、参考にして下さい) Ansibleは強力な構成管理ツールですが、実環境で使ってみようとすると、うまく行かない点がいくつか出てきます。その中には、欲しいモジュールがない、同じことをシェルスクリプトで行うより実行時間が長くなる、などありますが、Playbookのデバッグに手間がかかる、というのもその一つだと思います。 Playbookのデバッグに手間がかかってしまうのには、少なくとも2つ原因があると考えています。1つは、Playbookの実行に失敗したときのエラーメッセージに、デバッグに必要な情報が全て含まれているとは限らないことです。例えば、インベントリやvarsファイルなどで定義した変数、Playbook内でregisterした変数についての情報は出力されません。もう1つは、Playbookの実行にかかる時
この記事はAnsible Advent Calendar 2014 - Qiitaの12日目の記事になります。 Ansibleを今年の夏頃から使い始めました。今ではそれなりの規模の構築にもAnsibleを利用するようにしています。 昨年末頃からChef(chef-solo)を使い始め、Chefに慣れてきた頃にAnsibleも触りだした形になります。今日はAnsibleを始めてから今日に至るまでにハマったポイントをいくつか挙げておきます。 なお、以下の検証は全てVagrant上のCentOS6.5で実施しています。 copyモジュールでdestにディレクトリを指定する際の注意点。 例えば以下のようなTaskを実行します。 ... tasks: - name: copy sample copy: src=foo/bar.txt dest=/tmp/baz/qux 上記実行時、/tmp/bazデ
イケてると思う dotfiles の管理方法 この記事は、今年もやります!KMCアドベントカレンダー!! - KMC活動ブログの21日目の記事です。 昨日の20日目の記事はReturn Value Optimization (RVO)の話 【KMCアドベントカレンダー20日目】 - KMC活動ブログでした。 KMC5回生の wacky です。今日は dotfiles の管理方法についての話をします。 dotfiles を管理していないと 何らかの UNIX を長いこと使っていると、ホームディレクトリには自分の書いた .zshrc や .tmux.conf などの設定ファイルがたくさん転がっていると思います。そして、長いこと UNIX を使っている人であれば、自分が単一のサーバにしかログインしない、というのは稀でしょう。当然、自分のログインするサーバ全てのホームディレクトリには .zshrc
こんにちは。アプリケーションエンジニアの id:aereal です。 この記事ははてなエンジニアアドベントカレンダー2014の1日目です。 今日はアプリケーションの開発環境を作成する手順を Ansible でコードとして表現し自動化する取り組みとその背景について簡単に紹介します。 前提 この記事で扱うアプリケーションは Perl と JavaScript で書かれた中規模の Web アプリケーションです。 アプリケーションを開発するチームのエンジニアとデザイナすべてが Mac OS X を使っています。手元で開発する際には VM などを動かさずに OS X でアプリケーションを起動させます。 また、開発やデプロイなどにおいて SOCKS プロキシを通してアクセスする必要のあるサーバが存在します。 開発環境の構築手順を始めとしたドキュメントは Redmine の Wiki にまとめられていま
タイトルの通り、去年の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 の設定ファイルは YAML なのですが、 ansible の説明では YAML 由来のいろんな書き方についてはあまり説明がないので、 ansible の設定ファイルを書く時に知っておくと便利な YAML の知識についてまとめてみました。 YAML のバージョン The Official YAML Web Site によると YAML の仕様としては YAML 1.2 (3rd Edition) まで存在するようですが、 ansible は PyYaml を使っていて、 libyaml binding なので 対応している YAML のバージョンは YAML 1.1 (2nd Edition) になります。 コレクション 参考: 2.1. Collections 配列 - で列挙すると配列になります。 YAML は空白に敏感なので、 -foo のように書くとエラーになります。
November 13, 2014 参考 KAIZEN platform Inc. における運用自動化 - Speaker Deck Continous Integration and Delivery with Docker - CircleCI TL;DR CircleCI上でDockerコンテナを立て、 そのコンテナに対してプロビジョニングを行い、 プロビジョニング後のコンテナに対してテストを行う DockerコンテナにAnsibleを実行する コミットする度にDockerのimageをpullするのは時間がもったいないので cache_directoriesを利用し、imageをexportしておき 実行時にimportするようにすると多少速くなる。 . ├── Dockerfile ├── ansible/ └── circle.yml Dockerfile FROM kenji
さよならインターネット:CircleCIでDockerコンテナに対してansibleを実行しserverspecでテストをする こちらの補足エントリです。 OSS版Drone.io https://github.com/drone/drone drone.io のオープンソース版です。 Golang+Dockerで実装されているCIサービスです。 社内用のCIサービスとして使い勝手良いのでJenkinsの変わりに結構利用しています。 .drone.yml リポジトリにこんなの置いておきます。 Droneではgit入りのイメージが必要なので、今回はDockerRegistry上の別イメージで実行してみました。 2回目以降は前回pullしたイメージを使いまわすので速くなります。 image: tvservices/ubuntu-ansible:13.04 script: - echo "sta
はじめに 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
バージョン: 1.4.2 Box: CentOS 6.5 (S3に用意) VertualBox: 4.3.4 共有フォルダ: Vagrantのsynced_folder (NFSは未使用) Ansible: バージョン 1.4.3 ディレクトリ構成: [ベストプラクティス] ベストプラクティスに沿ってプレイブックを作成すると、新しいロールの追加や不要になったロールの切り離しも簡単になります。 どんなテストをやったのか大きく分けて下の4つのテストを実施しました。それぞれのテストにどんな目的があるか、ちょっとだけ効率よくテストする方法と合わせて紹介します。 ロール単位で繰り返し実行するテスト 全体を通してのテスト 再起動するテスト 人柱テスト ロール単位で繰り返し実行するテストまずは粒度の小さいテストについて紹介します。 VagrantとAnsibleで作る開発環境をチームへ配布して運用を開始
多種多様な構成のサーバーを Ansible で管理する場合、単一のベストプラクティスツリーに押し込むのは管理が大変すぎて現実的ではないなとおもい、どうしたものかなと悩んでいました。で、最近やっとこれかなという構成ができたので共有してみます。 何が問題か? ロールには共用できるものとできないものがある、それがいっしょこたに混ざるのが嫌 無理に共用できるようにと変数を多用するととても管理が大変。変数も覚えられないし、テストが大変 読み込むファイルのパスが大元のymlからの相対パスであり、include ではディレクトリ階層での整理が難しい -l で対象サーバーを絞り込んでも全てのタスクが表示され、skipped, skipped, skipped と関係ない task 表示がターミナルが埋まって見づらい そして、たどり着いたオレオレベストプラクティス まとめて管理したいサーバーグループ毎にベス
Ansible コーディング規約 (の例)¶ edX がgithub上でAnsibleのコーディング規約を公開しています。 https://github.com/edx/configuration/wiki/Ansible-Coding-Conventions このリポジトリは GNU AGPLv3です。翻訳の場合でもおそらく大丈夫だと思いますので、ここで翻訳して公開してみます。 一般¶ YAMLファイル すべてのyamlファイルは2スペースのインデントで、 .yml を拡張子に 付けてください。 変数 jinja変数の形式を使ってください。 $var ではなく {{ var }} です。 jinjaの変数名の前後に空白を入れてください。 {{var}} ではなく {{ var }} です。 環境独自で上書きされる必要がある変数名は全部大文字としてください。 ロール内で完結する変数名は全部
I’ve really been enjoying using Ansible for my personal sysadmin tasks. Puppet is still great, and it’s what I still use in our large infrastructures, but for one-offs and personal services Ansible seems to really fit what I need. But today’s quick tip is something that took me a bit of time to track down – making a simple self-signed SSL certficate for a node. And, it’s this easy. In the tasks of
Ansibleはサーバ構築時の手順をコードにできるOSSです。今回は最近構築した自分のサーバのコード『morizyun/centos_ansible_rails - GitHub』を紹介します。 このAnsibleを使うとCentOSを使っているサーバに次のような環境をたったの数コマンドで構築できます。 * サーバ: Nginx * DB: MySQL or PostgreSQL * Firewall: iptables * サーバ監視: NewRelic * Ruby: RVM & Rails * SSH: Mosh * 開発に必要なライブラリのインストール 🗽 動作条件AWSやVULTRで動作確認がなんとなくできている状況ですが、多分CentOS系のOSなら動く気がします。 VULTRの場合は拙著『[VULTR 日本リージョン/MEM 768MB/SSD 15GB VPS $5/月!
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く