ksaitoの日記

日々試したことの覚え書き

複数のディレクトリの差分と同期

複数の環境に共通のシェルやプログラムを配置することがあります。「全て同じはず」という言葉を信じる以外に確認方法がない場合、gitに移行する方法です。 bareリポジトリの作成 bareリポジトリを作ります。GitHubやbitbucketを使ってもokです。 $ git init…

git mergetoolを使ったコンフリクトの解消

gitのmergetoolでemacsのemergeを選択する設定です。 git config --global merge.tool emerge コンフリクトが発生した場合に、mergetoolを起動するとemacsのemergeが起動します。 git mergetool aとbで、どちらの変更を採用するか、pとnで前後の変更へ移動、…

Ubuntu 16.04のDockerをaufsからdevicemapperに切り替える。

Ubuntu 16.04のDockerをaufsからdevicemapperに切り替えました。 aufsで作成したコンテナは、全て削除されます。 RedHat系のコンテナでswapを追加しようと試みました。 LVMなのでサイズ変更できるかと思いましたが、下記の通りmdsetupがエラーとなりました。…

iPhone7

iPhone6SからiPhone7に引越ししました。 大きな問題はありませんでしたが気が付いたところが幾つかあります。 SIMカード 今回は、USIMカードは同梱されておらず、今使っているものを差し替えるだけでした。iPhone6Sは、SIMなしとなります。 引っ越し 引っ越…

ubuntu 16.04のtimezone設定

今までは、下記でtimezoneが設定できました。 # echo "Asia/Tokyo" > /etc/timezone # dpkg-reconfigure --frontend noninteractive tzdata Ubuntu 16.04では、このやり方は出来ませんでした。 # grep "VERSION=" /etc/os-release VERSION="16.04.1 LTS (Xen…

zabbixのカスタムLLD

ドキュメントに作り方が書いてあります 。 カスタムLLDで必要なJSONファイルを作成する汎用の処理をpythonで作成します。 シェルで取得した下記の形式のファイルを入力にします。 {#NAME1} {#NAME2} name11 name12 name21 name22 ファイルからJSON形式に変換…

Selenium2をpythonで使う

Selenium2をpythonで使ってみました。 テストシナリオの作成 FirefoxとSelenium IDEを使って操作をキャプチャします。 yahooで"test"を検索して画像検索に切替えるというシンプルな操作をキャプチャします。 エクスポートでpythonを出力します。 こんな感じ…

awsのWindowsインストールメディア

なかなかたどり着けないawsのWindowsインストールメディアのリンクです。 使用するリージョンによってスナップショットのIDが異なります。 Configuring Windows Components on Amazon EC2 : Articles & Tutorials : Amazon Web Services

ansibleでwinrmセットアップ済みのec2インスタンスを作成する。

ansibleでwinrmセットアップ済みのec2インスタンスを作成しました。 ansibleのec2モジュールを使ってWindows 2012R2のAMIを作成します。 インスタンス作成時に実行されるスクリプトをuser_dataに設定しておくことでwinrmが利用可能なec2インスタンスが作成さ…

ansibleでwinrmに接続する。

ansibleでwinrmに接続を確認しました。 WIndows 2012R2側の準備 提供されているスクリプトでwinrmの設定をします。 PS C:\> mkdir work Directory: C:\ Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 5/25/2016 1:01 PM work PS C:\…

sshのport forwarding

vagrantで必要なポートをマッピングすると設定が増えていってしまうので、一時利用する場合には、sshポートフォワードで済ませると楽です。 確認 sshでの接続先を確認します。 vagrant ssh-configで必要な情報を確認できます。 $ vagrant ssh-config vagrant…

ansibleのインベントリに指定したホスト名

ansibleのインベントリに指定したホスト名を参照するサンプルです。 --- - hosts: all vars: hostname: "{{inventory_hostname}}" tasks: - debug: msg="{{hostname}}" 実行するとインベントリに指定した名前を参照できます。 $ ansible-playbook sample.yml…

makeのオプション

ストアドプロシージャのコンパイルなどファイルとしてオブジェクトができないものをmakeでビルドする時によく使うオプションです。 エラーが起きてもできる限り実行を継続する。 -kは、コンパイルエラーが起こっても依存関係のないビルドを継続します。 同じ…

ansibleで自動起動をセットアップするときの判断

ansibleで自動起動をセットアップするときに、ディストリビュージョンの種類やバージョンを判断基準にするのにどうも違和感がありました。 いろいろ調べた結果、ansibleのansible_service_mgrで判断するのが正解です。 試す 下記のソースを使って検証します…

jenkinsにインストールしたプラグイン

jenkinsにインストールしたプラグインの覚書 Timestamper コンソールにタイムスタンプをつけるプラグインです。 JobConfigHistory ジョブの設定変更履歴を残してくれるプラグインです。 Build Trigger Badge Plugin ビルドのトリガをアイコンで表示してくれ…

dockerのデータの永続化

dockerでデータを永続化するために--volumes-fromを使ってみました。 やりたいこと dockerのオフシャルコンテナでmysqlやjenkinsを手軽に立ち上げることができます。 データについては、-vオプションでホストOSのディレクトリにマッピングしていたのですが、…

Makefileでできること

Makefileでよく使うパターンを検証しました。 検証用のファイルは、下記の通りです。 ソースがtest1ディレクトリの*.txtでtest2ディレクトリの*.objがターゲットファイルという想定です。 できるだけ、Makefileがシンプルになるように工夫してみました。 $ t…

packerを使う

公開されているboxを使うのは、ちょっと抵抗があるのでpackerを使ってvagrant boxを作りました。 何ができるのか packerでいろいろなことができるようですが、使っているのは下記です。 OSインストール用のISOファイルのダウンロード VirtualBoxのVM作成 OS…

packerのインストール

MacBookにpackerをインストールしました。 ダウンロード packerのダウンロードページからOS X 64bit用のバイナリをダウンロードします。 インストール zip形式なので/usr/local/binに展開したらインストール完了です。 $ packer --version 0.10.0 $

ansibleのdocker connection plugin

ansibleのdocker connection plugを使ってみました。 環境 ansibleとdockerのバージョンは、下記の通りです。 $ ansible --version ansible 2.0.1.0 config file = /home/vagrant/.ansible.cfg configured module search path = Default w/o overrides (0)21…

ansibleで一対多の設定をする

設定する対象がデータベースやアプリケーションサーバの場合、「一つのインスタンスに複数のアプリケーションをデプロイ」したり、「一つのアプリケーションに複数のデータソースを追加」といった一対多の設定はよくあります。 ansibleで設定を行う場合に、 …

ansibleのコアモジュール

Developing Modulesを参考にansibleのcoreモジュールを弄ってみました。 環境準備 オフシャルドキュメントのチュートリアルにテスト方法とかんたんなモジュールの作り方が書かれています。 下記でテスト環境を準備します。 $ git clone git://github.com/ans…

zabbix3.0のインストール

2/16にzabbix3.0がリリースされました。 Ubuntu 14.04 LTSにインストールしました。 インストール オフシャルドキュメントの手順でaptパッケージをインストール後にブラウザでアクセスします。 設定変更は、下記のphpのtimezoneの一箇所だけです。 root@trus…

ansibleモジュールの引数と戻り値の処理

ansibleモジュールは、pythonで書くと引数と戻り値に便利なヘルパがあり便利です。 AnsibleModuleのargument_specで引数を定義します。引数が必須かオプションかを定義できるようです。 戻り値は、exit_jsonで返します。最後の2行は、python初心者なのでお…

ansible Moduleの作り方2

オフシャルドキュメントを参考にテスト方法と引数の取り方を試しました。 テスト オフシャルドキュメントのチュートリアルにテスト方法とかんたんなモジュールの作り方が書かれています。 下記でテスト環境を準備します。 $ git clone git://github.com/ansi…

handlersのデバッグ

ansibleのhandlerは便利なのですが、想定通り動かない場合にデバッグが難しいです。 サンプル handlersは、notifyで通知された名前のhandlerを実行します。複数のタスクを実行する方法が分かりません... handlerでシェルを起動する際、結果はどうあれ、出力…

shellモジュールとdebugモジュール

shellモジュールの実行結果をdebugモジュールで表示してみます。 ソース 使ったソースは下記の通りです。 $ cat site.yml --- - hosts: appservers tasks: - debug: - shell: ls register: result changed_when: False - debug: var="result.rc" - debug: va…

httpd.confへのProxyPass設定をansibleで自動化

ansibleでProxyPassの設定をするサンプルです。 ソース lineinfileモジュールを使います。 createを指定することで、ファイルがない場合は作成します。 regexpでポートの部分を指定することで、ポート番号変更の際にエントリが増えてしまうことを防ぎます。 …

サーバに複数インスタンスを設定する

サーバ一台にミドルウェアをインストールしてインスタンスを複数作る構成を設定するサンプルです。 ディレクトリ構成 ディレクトリ構成は、下記です。 $ tree . ├── host_vars │ ├── appserv1 │ └── appserv2 ├── hosts ├── roles │ └── app │ └── tasks │ ├…

PR-400KIの初期化

PR-400KIのパスワードを忘れてしまったので初期化しました。 必要なもの 針金 LANケーブル 有線LANで接続可能なブラウザがインストールされたPC プロバイダの認証IDとパスワードが記載された紙 手順 手順は、PR-400KI取扱説明書の8-10ページにあります。 手…