タグ

ブックマーク / heartbeats.jp (17)

  • Pythonタスクランナー Fabric 2 の紹介 - 後編 Fabricの使い方 - - インフラエンジニアway - Powered by HEARTBEATS

    こんにちは、滝澤です。 いくつかのプロジェクトでタスクランナーFabric 2を使う機会がありました。少しですが知見が溜まったので紹介します。 また、Fabric 1.xを利用していた方は互換性も気になると思いますでのその点についても紹介します。 記事が長くなったので3編に分けます。 前編: Fabricの概要 中編: Invokeの使い方 後編: Fabricの使い方 記事は後編の「Fabricの使い方」になります。 なお、執筆時点(2018年11月21日)での最新バージョンはFabric 2.4.0、Invoke 1.2.0です。 動作確認はPython 3.7.1にて行っています。 Fabricについて Fabricについては前編で紹介したのでここでは省略します。 Fabricのインストール pipコマンドでインストールできます。依存によりInvokeやParamikoもインストー

    taro-maru
    taro-maru 2021/04/28
  • Pythonタスクランナー Fabric 2 の紹介 - 中編 Invokeの使い方 - - インフラエンジニアway - Powered by HEARTBEATS

    こんにちは、滝澤です。 いくつかのプロジェクトでタスクランナーFabric 2を使う機会がありました。少しですが知見が溜まったので紹介します。 また、Fabric 1.xを利用していた方は互換性も気になると思いますでのその点についても紹介します。 記事が長くなったので3編に分けます。 前編: Fabricの概要 中編: Invokeの使い方 後編: Fabricの使い方 記事は中編の「Invokeの使い方」になります。 なお、執筆時点(2018年11月21日)での最新バージョンはFabric 2.4.0、Invoke 1.2.0です。 動作確認はPython 3.7.1にて行っています。 Invokeについて Invokeはローカルでシェルコマンドを実行するPythonライブラリです。 タスクランナーとして利用できます。 前編でも述べましたが、Fabric 2はタスクランナーInvoke

    taro-maru
    taro-maru 2021/04/28
  • Python+SSHな自動化・デプロイメントツールFabricを活用するTips

    こんにちは。CTOの馬場です。 みんな大好きFabricのTipsです。 Welcome to Fabric! -- Fabric documentation よくデプロイツールとして紹介されますが、 自動化のためのPython+SSH+コマンド実行フレームワークとして柔軟に使えて超便利です。 基的には 手元でのコマンド実行 SSHごしのリモートサーバでのコマンド実行 SSHごしのリモートサーバでsudoしてコマンド実行 ができるツールなのですが、使い方の例を紹介します。 間違いなどあればお近くのハートビーツ社員か @netmarkjp に教えていただけると嬉しいです。 Python 2.7.10 + Fabric 1.10.2 + Paramiko 1.15.2で動作確認しました。 複数のサーバに対して同じユーザ・パスワードでログインする ユーザ名やパスワードを一括指定できます。 鍵認

    Python+SSHな自動化・デプロイメントツールFabricを活用するTips
    taro-maru
    taro-maru 2021/03/13
  • MySQL 5.6.10 以下に存在する レプリケーションのバグと詳細について

    こんにちは。初めて会社のブログを書きます。吉川です。 先日、月に一度行われている社内勉強会(hbstyle)にて、下記の発表をしました。 MySQL 5.6.10 以下に存在する レプリケーションのバグと原因特定について (Heartbeats 社内勉強会 2014/12/11) この件に関して、社内・外から反響がありましたので、詳細についてご紹介します。 概要 以下の環境にて、MySQL のレプリケーションが正常に同期されない事象に遭遇しました。 使用している MySQL のバージョンは 5.5.32 バイナリログのフォーマットには ROW を使用 現象としては以下の通りです。 MasterDB で特定のテーブルに書き込んだ更新系 DML が SlaveDB に反映されない SlaveDB にて show slave status\G を実行した結果 Slave_(IO|SQL)_Run

  • nginxをdockerで動かす時のTips 3選

    こんにちは。CTOの馬場です。 最近利用する機会が増えてきたdockerネタです。 nginxを動かすときのTipsを3つ紹介します。 foregroudで起動する dockerではコマンドをforegroundで動かさないとコンテナが停止してしまいます。 nginxはデフォルトはデーモンとして動くので、foregroundで動くように設定しましょう。 nginx.confで設定するならこうです。 daemon off; Dockerfileの起動コマンドで指定するならこうです。 CMD ["/usr/sbin/nginx", "-g", "daemon off;"] 動的な設定を外部化する イメージの中に設定値を入れちゃうのはダサいですよね。 コンテナ起動時に動的に設定したいものです。 dockerの場合は docker run 時に -e で環境変数を指定できるので使いましょう。 do

    nginxをdockerで動かす時のTips 3選
  • Google Cloud PlatformのCLIツールgcutilをDockerで使う #gcpja

    こんにちは。CTOの馬場です。 前回 Google Cloud Platformをはじめようチュートリアル でGCPのアカウント設定・プロジェクト作成〜GCEでインスタンス起動までやってみました。 その手順の途中で登場した、GCPのCLIツール gcutil を手元のPCにインストールする代わりにDockerを使ってGCP操作環境を作ってみましょう。 ※Dockerが使える環境があることが前提です。ありますよね。 1. 認証設定 Googleが cloud-sdk セットアップ済みのコンテナイメージを公開しているので、これを使います。 まずはpullして gcloud auth login で認証設定します。 docker pull google/cloud-sdk docker run -t -i --name gcloud-config google/cloud-sdk gcloud

    Google Cloud PlatformのCLIツールgcutilをDockerで使う #gcpja
  • Google Cloud DNSをはじめよう #gcpja

    こんにちは。CTOの馬場です。 今回はIaaSの中でも数少ないDNSサービス Cloud DNSを使ってみましょう。 いまはまだWebコンソールのメニューが見当たらないので、 gcutil の gcloud コマンドを使います。 gcloud auth login 、 gcloud config set project してある状態で操作します。 設定がまだの場合は Google Cloud Platformをはじめようチュートリアル を見て設定しておいてください。 手元のPCにインストールしたくない人は Google Cloud PlatformのCLIツールgcutilをDockerで使う をご覧ください。 Cloud DNSとは AWSでいうところのRoute53のようなDNSサービスです。 レコードは A, AAAA, CNAME, MX, NS, PTR, SOA, SPF, S

    Google Cloud DNSをはじめよう #gcpja
  • ChefでCookbookを作成するときのちょっとしたコツ 9選 - インフラエンジニアway - powered by HEARTBEATS

    こんにちは。斎藤です。 Chefで構築の自動化ができる事はわかっていても、Cookbookをどう記述すればいいのかピンとこない場合があります。そんなときに使えそうなコツをピックアップしてみました。 「Chefを使ってみたいけどいまいちとっかかりがわかりづらい」「あれ、これはどうやるんだ?」、そんなときにご覧頂けたら幸いです。 ※Chef 10.16.2で確認しました。また、RHEL, CentOSで利用する事を前提に説明しています。 Cookbookに同梱したRPMファイルから直接インストールする cookbook_fileとpackageリソースを組み合わせて実行します。 下記の例は、MySQLサーバをRPMファイルを用いてインストールします。 "MySQL-server-5.5.29-1.el6.x86_64.rpm"ファイルをあらかじめ "files/default" 内に保存します

  • ITインフラで起きる「もしも」のための12個のコマンド

    こんにちは。斎藤です。 ITインフラの障害は、多くの場合「予期せぬ」タイミングで発生します。特に、CPUリソースを多量に消費したり、Disk I/Oが輻輳している場合、その切り分けは困難な状況に陥りやすいものです。 そこで、日はITインフラ、特にOS・ミドルウェアを支えるにあたって、問題解決を助けてくれるであろう12個のコマンドを取り上げてみます。「必ず押さえておきたい」5つのものと「更に覚えると便利なコマンド」7つの2節に分けてお話しします。 ※CentOS 6.4 (64bit)を前提に取り上げます 必ず押さえておきたいコマンド もしITインフラ管理者になりたてな方はぜひ サーバサイドのプログラマをやっていたのだけれど、ある日突然「君、サーバ管理担当ね!」と、バトンを渡される方っていらっしゃると思います。私も以前はそのクチでした...。そうなってしまったとき、まずは覚えておきたい5つ

    ITインフラで起きる「もしも」のための12個のコマンド
  • PythonでExcelスプレッドシートを出力しよう

    斎藤です。こんにちは。 今日は、Pythonの"xlutils"ライブラリを利用してExcelスプレッドシートの生成をしてみます。「使い方」「書式定義のしかた」そして「注意点」の3点について、順にお話しします。 Excelを用いて、サーバ管理台帳など、ITインフラ運用に用いるドキュメントを作られる方もいらっしゃるかと思います。そのときに、これからお話しする"xlutils"ライブラリを用いると、お手製CSV出力ツールや、それこそ 手動 で作るよりも手間を省きつつExcelスプレッドシートを作成できます。 ※Python 2.7.4, xlutils 1.6.0, xlwt 0.9.2, Excel for Mac 2011 (14.3.6), Mac OS 10.7.5 を用いて検証しています 使い方 インストール インストールはとても簡単です。 # easy_instal xlutils

    PythonでExcelスプレッドシートを出力しよう
  • デーモンの起動・終了にはserviceコマンドを利用しよう

    斎藤です。こんにちは。 今日は、デーモンの起動・終了に際してはserviceコマンドを使った方がいいよ、というお話です。 ※CentOS 6.4 (x86_64) でテストしています。尚、特記がある所を除きます。 デーモンの起動・終了には大きく2手 Linux、特にRedHat, CentOS, Fedora, Ubuntu[1]などでは、デーモンの起動・終了の制御の際に、大きく分けて次の2つの方法を用いる事ができます。 "/etc/init.d/"配下のスクリプト(以下、スクリプト)を直接実行する "service"コマンドを実行する 一見、同じ事をやっているように思えるのですが、実は違う部分があります。それは、起動スクリプトが扱う環境変数が違うのです。次の節で、検証してみます。 扱う環境変数が違う スクリプトを直接実行する場合は、実行時の際の環境変数をそのまま利用します。一方、serv

  • MySQL を MHA + HAProxy で冗長化してみよう

    斎藤です。こんにちは。 今日は、MySQLにてレプリケーション構成において、マスタサーバのフェイルオーバーを司るmysql-master-ha(以下、MHA)を用いる際、マスタサーバ接続先の切り替えにHAProxyを使ってみようというお話です。 ※MHAは0.53.0(公式パッケージ)、MySQLは5.5.25a(Oracle公式パッケージ)、HAProxyは1.4.22(CentOS6標準パッケージ)、OSはCentOS 6.3 x86_64を用いました。 ※MHAによる冗長化およびHAProxyによるMySQLの負荷分散の設定を経験された事がある前提で記述します。 記事では、次の流れで話題を展開します。 フェイルオーバー時の接続先切り替え方法 構成(参考) なぜHAProxyなのか 切り替え方 2台構成の問題点 その他 コツ 設定(参考) 主にMHA+HAProxyによるフェイルオー

    MySQL を MHA + HAProxy で冗長化してみよう
  • Nagiosプラグイン自作方法の紹介

    こんにちは。ハートビーツ運用スタッフの津田です。 ハートビーツからお届けする技術情報の初回シリーズ、Nagiosについての第4回です。 第3回ではNagiosの監視プラグインで、aptでインストールできるものをご紹介しましたので 今回は自作監視プラグインの作り方をご紹介します。 (ただし、ここではサービス監視に関するものをご紹介します。ホスト監視についてや、 細かい仕様については公式ドキュメントのNagios Plugin APIなどをご覧下さい。) "作り方"と言っても、専用のプログラミング言語があるわけではありません。 プラグインを使って監視をしたいサーバで動くプログラミング言語であれば、どんな言語でも構いません。 前回ご紹介したプラグインはC言語で書かれていますが、シェルスクリプトや Perl,Ruby,Pythonで書いても構わないんです。 Nagiosで動くプラグインを作るための

    Nagiosプラグイン自作方法の紹介
  • インフラエンジニアway 2012年間アクセスランキング!

    こんにちは。CTOの馬場です。 2012年も残すところあと数日となりました。 もういくつか寝ると2013年の幕開けです。 来年のことを言うと鬼に笑われてしまいますので、 このインフラエンジニアwayの 2012年間アクセスランキング をもとに今年の振り返りをしてみましょう。 10. UnboundとDNSラウンドロビン ニッチだけど注目されてる(!?)Unboundのエントリ。 大きな弱点といわれていたDNSラウンドロビンに対応しましたよの話。 9. 覚えておきたいbashシェルスクリプトのオプション 2010年のエントリです。基礎に近いエントリは息が長いっ。 8. nginx連載6回目: nginxの設定、その4 - TLS/SSLの設定 怒涛のnginx連載の第6回です。 nginxいいよnginx。 7. DELLのサーバでCentOS6でLVS+keepalivedなロードバランサ

  • nginx連載5回目: nginxの設定、その3 - locationディレクティブ

    locationディレクティブはパスの条件が評価されて選ばれたものが適応されます。この条件はパスの文字列の前方一致あるいは正規表現による評価です。この評価の順番は以下のようになります。 前方一致("=", "^~", プレフィックスなし)の条件の評価を実施 最も一致する条件を選ぶ。 選ばれた条件が、完全一致で、プレフィックスが"="であれば、そこで評価を終了し、そのlocationディレクティブを適応する。 選ばれた条件のプレフィックスが"^~"であれば、そこで評価を終了して、そのlocationディレクティブを適応する。 正規表現("~", "~*")の条件の評価を実施 正規表現の条件を設定ファイルに定義した順番に評価する。一致したら、そこで評価を終了して、そのlocationディレクティブを適応する。 前方一致の評価で選ばれた条件のlocationディレクティブを適応する。 ここで注意

    nginx連載5回目: nginxの設定、その3 - locationディレクティブ
  • nginx連載3回目: nginxの設定、その1

    ディレクティブはこのモジュールのカテゴリ毎に記述します。ただし、coreモジュールに関してはmainコンテキスト、すなわち、設定ファイル内の最上位の階層に記述します。設定ファイルの構成は次のようになります。 coreモジュールの設定 events { eventモジュールの設定 } http { httpモジュールの設定 } mail { mailモジュールの設定 } httpコンテキストはさらに、バーチャルサーバ(バーチャルドメイン)毎の設定を行うserverディレクティブ、さらにURI毎の設定を行うlocaltionディレクティブにより階層化されます。次のような構成になります。 http { httpモジュールの設定 server { サーバ毎の設定 location PATH { URI毎の設定 } location PATH { URI毎の設定 } ... } server { .

    nginx連載3回目: nginxの設定、その1
  • Nagiosプラグインの紹介

    こんにちは。CTOの馬場です。 ハートビーツからお届けする技術情報の初回シリーズの、Nagiosについての第3回です。 今回は、Nagiosの監視プラグインについてご紹介します。 独自に作るのも簡単にできるんですが、まずはaptでインストールできるものを一通りご紹介します。これだけでもかなりの量があるので、さっと試す分には十分だと思います。 すべて、/usr/lib/nagios/plugins/に配置されます。 いずれのコマンドも、たいがい-hオプションをつけてコマンドラインで実行するとUsageが表示されるので、困ったらやってみましょう。 nagios-plugins-basic check_apt - apt(apt-getのapt)でエラーがないか、更新すべきファイルが残っていないか確認します。チェックに少し時間がかかるので、あまりに頻繁にチェックすると問題になるかもしれません c

  • 1