Slack + Cloud Functionsで迅速な障害の初動対応をする/incident management by slack
![レガシーなAnsibleを改善していくための方針/How to improve the legacy Ansible](https://cdn-ak-scissors.b.st-hatena.com/image/square/0771f2a28008675309d6c0f4a67c813232e041d7/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F8996e5b47f8f439f9738070b353c409b%2Fslide_0.jpg%3F12357762)
1000台同時SSHオペレーション環境を構築するにあたって、手元のローカル環境の性能限界の問題を解決するために、オペレーションサーバをSSHクライアントとすることによりSSH実行を高速化した。実行環境としてDocker、レジストリとしてAmazon ECR(EC2 Container Registry)を用いて、ローカル環境とオペレーションサーバ環境を統一することにより、オペレーションサーバの構成管理の手間を削減した。 はじめに システム構成 実装上の工夫 オペレーションサーバ越しのroot権限実行 rawモジュールとscriptモジュールのみの利用 Ansibleの実行ログのGit保存 まとめと今後の課題 はじめに 3年前に Ansible + Mackerel APIによる1000台規模のサーバオペレーション - ゆううきブログ という記事を書いた。 この記事では、ホストインベントリと
Ansible徹底入門 クラウド時代の新しい構成管理の実現 作者: 廣川英寿,平初,橋本直哉,森田邦裕,渡辺一宏出版社/メーカー: 翔泳社発売日: 2017/02/17メディア: 単行本(ソフトカバー)この商品を含むブログを見る Ansible徹底入門読了。会社での購入稟議完了。Ansible依存の弊社としては会社として持つべき本。— k1LoW (@k1LoW) 2017年3月15日 「Ansible徹底入門 クラウド時代の新しい構成管理の実現」を読了しました。 わたしのAnsibleスペック とりあえず自分のスペックを。 1.5か1.6から使い始めています。 現在は1.9をメインに使っています。 ChefやPuppetはほとんど利用していません。 受託開発をやっているせいか、結構な数のPlaybookを書いてきました。 “今"のAnsibleを教えてくれる Ansible自体は知ってい
渡辺です。 Ansibleを使っている皆様、テスト書いてますか? え、書いてない? 弊社では、社内共有しているAnsibleのRoleの検証にServerspecを利用しています。 今日はよく使うリソースタイプを紹介します。 テストの流れ テストのフレームワークとしてはTest Kitchenを利用しています(kitchen-ansiblepushを利用したAnsible roleのテスト環境構築)。 はじめに、Test KitchenのEC2 Driverを利用し、AWS環境にEC2インスタンスを作成します。 次に、ひとつのRoleを実行するAnsibleのPlaybookを流します。 続けて、サーバの状態が期待された状態になっているかをServerspecで検証します。 最後に、AWS環境にEC2インスタンスが破棄されます(検証失敗時は破棄されない)。 Ansibleでもテストの仕組み
渡辺です。 2015年11月にRole を使ったAnsibleのチュートリアル書きました。 それから1年以上経ち、ノウハウも溜まってきたので、新しく書き直してみます。 セットアップ Ansibleのインストールと、EC2インスタンスを2台起動しておきます。 ssh_configの作成 はじめにホスト情報をssh_configに定義します。 ansible.cnfでssh_configを設定するでも書いたようにSSHで接続する時のユーザ名や秘密鍵の場所はssh_configを作成してまとめておくと便利です。 プロジェクトディレクトリにssh_configを作成しましょう。 Host * StrictHostKeyChecking no UserKnownHostsFile /dev/null Host test1a HostName xx.xxx.xx.xxx User ec2-user I
nodejsのバージョンを最新にしておきたいということでyumではなくnvmを入れてnodejsを入れます。 サーバはansibleで全てを管理しているのでnvmもansibleで入れるんですが 既存のものはユーザごとにインストールする系しかない -> システム共通で入れたい command:でもshell:でもそのままだとnvmが実行できない ことからredhat系で手直し版を作ったところ、わりかし面倒だったのでまとめときます。 を参考にしてます。 問題点 まずシステム全体にnvmコマンドを置くためにnvm.shは/etc/profile.d/以下としたいところですが、インストールを行ったディレクトリにバイナリが配置されるので直接置くと残念なことになります。 そのため、インストール用のディレクトリ{{nvm_install_dir}}を用意した上で、/etc/profile.d/nvm.
要件 ansibleを使ってローカルPCから踏み台サーバへSSH接続したあとに、SSH接続をしたサーバに対して操作がしたい ローカルPC -----SSH-----> 踏み台サーバ -----SSH-----> 対象サーバ 実現するには そのためには以下の二つが必要 ・トンネルを掘る ・インベントリの設定 トンネルを掘る 以下のコマンドを実行 ssh -L 10022:対象サーバ:22 ユーザー名@踏み台サーバ (ポート番号は10022にしたが、空いているローカルPCの任意のポート番号でよい) SSH接続が完了したら、そのまま接続済の状態にしておく インベントリの設定 作成したトンネルを利用するようにインベントリを記述する。
ansibleには公式がベストプラクティスの構成を用意しています。その構成を一括生成しましょう。 ansibleのベストプラクティスのディレクトリ構成は公式が公開しています。↓これです。 Best Practices — Ansible Documentation このフォルダ構成をいつまでも覚えていられるわけではないので、汎用的に作成できるようシェルスクリプトを用意してみます。 シェルスクリプト chefでいうところの「chef generate repo chef-repo」「knife cookbook create httpd」みたいなものです。 定数部分を適当に書き換えて使用します。 #!/bin/sh PLAYBOOK_DIR="/usr/vagrant/playbook" ENVIRONMENTS=('development' 'staging' 'production')
渡辺です。 Ansibleでは、ホストをInventoryファイル(スクリプト)で定義します。 この時、次のようにグループ化することが可能です。 [prd] 10.0.0.10 10.0.0.20 [stg] 10.0.100.10 10.0.100.20 ここではprdグループとstgグループにホストを定義しています。 ホストをグループ化することで、グループ変数(group variable)が利用できるため、本番環境(prd)と検証環境(stg)における構成の差異を反映した構成管理を行えます。 ここまではよくある話。 今回、ハマったのは本番環境も検証環境もlocalhostの場合です。 すなわちAnsibleをローカル実行させる場合に期待通りのグループ変数が適用されなかったというお話です。 期待通りにいかないファイル構成 こちらは上手く動作しなかった構成です。 # hosts [stg
Vagrant 1.8 で、ansible_local という新しいプロビジョナが追加されました。 これは、Ansible をゲスト(VM)側にインストールして、ローカルコネクションで VM 内で実行するものです。これは、まさに待ち望んでいた機能ので紹介します。 Vagrant + Ansible で気を付けること 以前から、Vagrant + Ansible の組み合わせでローカルの開発環境を作るなら、ホスト側に Ansible を入れるのではなく、ゲスト(VM)側に Ansible を入れる方が良いと考えていました。勉強会などでも良く話していたのでお聞きになった方もいるかと思います :) ホスト側に Ansible を入れない理由は、3 つあります。 まず、ホストに Ansible をインストールする手間が増える点です。Vagrant と Virtualbox のインストール(あとコー
当記事はケーススタディの連載となっています。目次は【こちら】です。 最新のソースコードは【GitHub】で公開中です。 開発環境全体構成 OSバージョン情報 Windows 8 CentOS 7 VirtualBox 5.0.8 今回の主目的 自分のローカル環境に開発用サーバを構成し、自由にサーバの設定変更/破棄できる環境を構築することです。 構築にはサーバを直接操作するのではなく開発用サーバを準備しAnsibleにて再現可能なインフラ設定コーディングを行います。 その上で、作成したAnsible実装コードを本番サーバに対して実行する事により開発サーバにて担保のとれた設定を本番にも適用します。これで開発サーバでは設定したが本番サーバでは設定していなかった等のよくあるミスをなくす事が可能になります。 また折角サーバ設定をプログラミングで行ったのでテストに関しても、ドキュメントによるサーバ設定
13inch MacBook Pro を購入したので、開発環境の構築を行いました。 以前は、brew bundleで自動構築していたのですが、今回は Ansible を使って構築を行いました。このエントリは、Ansible Advent Calendar 2015 の 9 日目です。 今回の構築にあたっては下記のエントリを参考にしました。ありがたや。 HomebrewとAnsibleでMacの開発環境構築を自動化する | mawatari.jp Mac の開発環境構築を自動化する (2015 年初旬編) - t-wadaのブログ Xcode / Homebrew のインストール Xcode と Homebrew をインストールします。 $ sudo xcodebuild -license $ ruby -e "$(curl -fsSL https://raw.githubuserconte
渡辺です。 セキュリティを高めるなどの理由で対象インスタンスにEIPを付与しない場合、SSHは踏み台(Bastion)経由となります(参考: Amazon VPC環境にメンテナンス用の踏み台サーバを構築する)。 踏み台サーバのある構成でAnsibleを利用する場合、ansible.cnfのssh_connectionでssh_argsを設定しましょう。 ssh_configの準備 はじめにsshのconfigファイルを作成します。 これは、~/.ssh/configに設定するファイルの一部と考えて良いでしょう。 Ansibleのファイルと一緒にバージョン管理する方が良いと思うので、Ansibleのプロジェクトルートにおくことをおすすめします。 Host bastion HostName 52.52.xxx.xxx User ec2-user IdentityFile ~/.ssh/prd.
イベント名: Ansible Meetup in Tokyo 2015.09 開催日時: 2015-09-14(月) 会場: 日経ビル6F 日経カンファレンスルーム(大手町) Webサイト: Ansible Meetup in Tokyo 2015.09 - connpass 最近、Ansibleを業務で使い始めて色々調べていたところに、ちょうどAnsible Meetupが開催されたので参加してきました。去年も9月に開催されていて、2回目みたいですね。 今回の目玉は、僕も参考にさせて頂いた「入門Ansible」著者の若山史郎さん(@r_rudi)による、Ansible 2.0の新機能・変更点紹介でした。Ansible 2.0についての情報をコンパクトにまとめて紹介してくれて勉強になったので、僕のように2.0系の予備知識ゼロの人にはスライド資料(と以下のメモ)をおすすめしたいと思います。あ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く