サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
blog.kakakikikeke.com
概要 サーバへのSSHログインが公開鍵+パスフレーズによる認証の場合にServerspecを実行する方法を紹介します 環境 CentOS release 6.6 (Final) Serverspec 2.14.0 設定方法 spec_helper.rb の修正 以下の設定をspec_helper.rbに追記します options[:keys] = ENV['KEY']; options[:passphrase] = ENV['PASSPHRASE']; options[:user] = ENV['USER'] || Etc.getlogin 環境変数「KEY」「PASSPHRASE」「USER」を実行時にセットできるようにします 追記した版のspec_helper.rbの全貌はこちら require 'serverspec' require 'net/ssh' set :backend,
gatttool を使って SensorTag CC2650 の KeyPressState の Notification を受信してみた 概要 bluez の gatttool と SensorTag CC2650 を使って SensorTag 側のボタンが押されたことを gatttool 側で受信してみました たぶんこんなニッチな記事を日本語で書いているのはこれくらいだと思う、、、 環境 Raspberry Pi Type B Single Board Computer 512MB Raspbian 8.0 (Jessie) Kernel Version 4.1.7+ BlueZ 5.23-2+b1 事前作業 RaspberryPi の構築 や bluez のインストール を実施して gatttool が使えるようになるようにしてください そもそも notification とは Bl
概要abc.js はブラウザ上に楽譜を描画することができるライブラリです 楽譜の描画に必要な情報を渡すと SVG 形式で楽譜を描画してくれます 環境CentOS 6.7 64bit Apache httpd 2.2.15 Firefox 43.0.4 abc.js 2.3 abc.js のインストールインストールは簡単です 必要な js ファイルを適当な場所に配置すれば OK です 今回は既存のサイトの <pre> 情報から楽譜を作成するプラグイン方式と、abc.js のメソッドをコールすることで楽譜を描画するベーシック方式の 2 種類で楽譜を作成してみました abcjs_plugin を使ったサンプルコードまずはプラグイン方式を使った方式を紹介します cd /var/www/html/abcjs wget https://raw.github.com/paulrosen/abcjs/ma
概要tail した json ログの情報をそのまま MQTT に publish してみました publish には out_exec プラグイン を使いました 環境Raspbian 8.0 (Jessie) Kernel Version 4.1.10 Ruby 2.1.5p273 Gem 2.2.2 fluentd 0.12.16 各種インストールfluentd のインストールに関してはこちらを御覧ください out_exec プラグイン自体はデフォルトで使える状態なので特にインストール作業は不要です 今回 publish に使ったツールは「mosquitto-clients」でこれを使うことで CLI で MQTT ブローカにメッセージを publish することができます インストール方法は以下の通りです sudo apt-get -y install mosquitto-client
概要 RaspberryPi のバージョン8 (Jessie) から bluez-utils というパッケージがなくなったようで bluez-simple-agent, bluez-test-device, bluez-test-input 等のコマンドが使えません その代わりに bluetoothctl というコマンドで制御することができるのでその方法を紹介します 環境 Raspberry Pi Type B Single Board Computer 512MB Raspbian 8.0 (Jessie) Kernel Version 4.1.10 BlueZ 5.23-2+b1 Bluetoothキーボード : iBUFFALO Bluetooth3.0対応 コンパクトキーボード 薄型モデル BSKBB24BK Bluetoothレシーバ : ELECOM Bluetooth PC用
概要 1つの巨大なgitを複数のgit環境に分割してみたいと思います 初めは小さなプロジェクトで1つのgitからスタートしたが、次第にプロジェクトが大きくなり、その過程でgitを複数作らなくて同じgitにpushし続けた結果いろんなソースコードが混じった巨大なgitが出来てしまった なんてことはあると思います 環境 git 2.1.1 分割する方法 例として自分のGitHubアカウントを使って分割してみます 分割先のリポジトリを作成する まず分割先のリポジトリを作成しましょう 名前は何でもOKです できれば空のリポジトリとして作成しましょう 空じゃなくてもOKですが、空リポジトリの方が簡単です 分割対象のリポジトリをcloneする これが巨大な1つgitリポジトリになります ご自身の環境に合わせて分割したいリポジトリをローカルにcloneしてください すでにある場合は特に何もしなくてOKで
概要 log4j2を使ってJson形式のログを1行ずつ出力してみました Githubで昔公開したlog4j2のサンプルソースを使って解説します 環境 Windows7 64bit Eclipse 4.4 Luna Java 1.8.0_25 log4j2 2.3 各種インストールと設定 Githubで公開しているサンプルプロジェクトはMavenを使っているのでMavenも使えるようにしておいてください Eclipseのm2eの組み込みのMavenでもOKです サンプルプロジェクトを使う場合はgit cloneしてEclipseのEGitでプロジェクトをEclipseに読み込んでからインポートしてください .projectファイルと.classpathファイルもコミットしているのでインポートすれば特に設定せずに使えると思います もちろん自分で開発しているプロジェクトでもOKです 必要なライブ
概要droneはGo言語で書かれたCI・CDツールでJenkinsみたいなやつです 今回はニフティクラウド上のCentOSで動作するか試してみました 環境準備CentOS 6.4 64bit docker 1.1.2 drone 0.3-v golang 1.3.3 インストール各種インストールしていきます GLIBC2.14のインストールdroneの動作にはGLIBCの2.14が必要になります yumでインストールできるGLIBCのバージョンが2.12でダメなので公式のソースを持ってきてソースインストールします makeでのビルド時間が非常に長いです yum -y groupinstall "Development Tools" wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.1.tar.gz tar zvxf glibc-2.14.1.tar.
概要 Mavenビルド時に CheckStyle を適用したいと思います CodeStyleの目的は ソースの可読性をあげる 無駄なコードを排除する 複数人で開発している場合に変数名やクラス名などに統一性を持たせる などあります ビルド時に実施することで強制的にスタイルを合わせることができるので間違いも発見しやすくなります 今回はEclipseを使って基本的な設定から独自のルール設定をする方法まで紹介したいと思います 環境 Windows7 64bit Java 1.8.0_25 Maven 3.2.2 maven-checkstyle-plugin 2.1.5 Eclipse 4.4 Luna Eclipse CheckStyle Plugin 6.5.0 maven-checkstyle-plugin のインストール pom.xmlを編集します <build> -> <plugins>
前回、maven+testngでモダンにテスト開発をしてみました 今回はmavenを使ってサーバサイドだけでWebアプリ開発ができないか頑張ってみました ■環境 CentOS release 5.10 (Final) JDK 1.7.0_05 Maven 3.1.1 Tomcat 7.0.27 Servlet API 3.0.1 mvn archetype:generate -DgroupId=com.sample.webapp -DartifactId=webapp-quick-start -DarchetypeArtifactId=maven-archetype-webapp ※versionとGroupIdの入力は特に指定しませんでした [INFO] Scanning for projects... [INFO] [INFO] ----------------------------
概要 JenkinsのWorkflow Pluginを使ってみました ビルドをchainするプラグインは他にもBuild Pipelineなどがあります 今回使うWorkflowプラグインも同じような種類のプラグインですがBuild Pipelineで問題だった点をいろいろ解決してくれているプラグインになります インストールから簡単なサンプルの動作まで紹介します 環境 CentOS 6.6 64bit Jenkins 1.6.10 Workflow Plugin 1.5 各種インストール Jenkins ここを参考にyumでインストールしました Workflowプラグインを動かすためには1.580.1以上のバージョンが必要です Workflowプラグインのインストール Jenkinsの管理 -> プラグインの管理 -> Workflow: Aggregator をインストールします 依存す
概要 Jenkinsのビルドを実行した際にビルドは成功しているのだがビルドの出力結果に以下のような怪しいログが出ていることがわかりました ユーザーanonymousが実行 ln builds\lastSuccessfulBuild C:\Program Files (x86)\Jenkins\jobs\job_name\lastSuccessful failed java.nio.file.DirectoryNotEmptyException: C:\Program Files (x86)\Jenkins\jobs\job_name\lastSuccessful at sun.nio.fs.WindowsFileSystemProvider.implDelete(Unknown Source) at sun.nio.fs.AbstractFileSystemProvider.deleteI
概要 Tomcatのインストールはアーカイブをダウンロードして解凍して配置して終了という感じで実施していたのですが、yumでもインストールできるのでやってみました 設定ファイルやデプロイ先も自動で設定されるのでその辺も確認しました 環境 CentOS 6.6 Final Tomcat 7.0.33 Java 1.8.0_31 インストール作業 yumを使って各種インストールしてみます Tomcatのインストール yum -y install tomcat でTomcatの 7.0.33というバージョンがインストールされました これは、バージョン7系のバージョンとしてはだいぶ古いです バージョンで7系の最新版は 2015/03/18 時点では v7.0.59 でした v7.0.33は 2012-11-21 12:07 頃にリリースされたバージョンです tomcat version Serve
emacs24以上にはデフォルトでpackage.elがインストールされています emacsをバージョンアップした等でタイトルのエラーが出る場合には 独自でインストールした package.el を移動(もしくは削除)してあげる必要があります 独自でインストールした package.el が使われているかどうかは M-x load-library RET package.el でパスが表示されると使われていることになります また、package-list-packages 等のコマンドでパッケージが2種類表示されている場合でも両方の package.el が効いているので独自でインストールしたほうを移動(もしくは削除)してください ~/.emacs.d/site-lisp mv package.el /var/tmp/ find したところ以下のパスにビルトイン用の package.elc
よく「歴史を書き換える」と言われている作業です 特に今回はコミットログとコミットしたユーザ情報を書き換える方法をご紹介します 違うマシンからpushすると.git/configとかを設定するのを忘れて変なユーザでコミットすることがたまにあるのでメモしておきます git rebase -i HEAD~3 3の部分はHEADからどらくらいまで遡るかを指定します 3つ前のpushまで書き換えたい場合は3を指定します エディタが立ち上がるので歴史を書き換えたい行をpick -> editをする :wqで保存 editとした部分で止まるのでコミッター情報を書き換える git commit --amend --author="username <[email protected]>" エディタの起動とともにコミットログを書き換える画面が表示されるのでコミットログを書き換える このとき全く書き換えないと
Githubはpushしたときにいろいろなサービスに「pushした」ということを通知する機能(Service Hooks(WebHook))があります 今回はWebHookの機能を使ってpushされたらビルドを実行するという流れをJenkinsで実現したいと思います
Jenkinsのデータを管理するフォルダ:/var/lib/jenkins/jenkins-data/ ビルド履歴を削除するジョブ名:test-job とします rm -rf /var/lib/jenkins/jenkins-data/jobs/test-job/builds echo 1 > /var/lib/jenkins/jenkins-data/jobs/test-job/nextBuildNumber buildsフォルダを削除し、ジョブを管理するフォルダ配下のnextBuildNumberファイルの値を1に修正します その後Jenkinsを再起動します すると、ビルド履歴が全削除されビルドの実行番号も1番からとなります ポイントはフォルダの削除とファイルの修正を実施したあとにちゃんと再起動をするところ Jenkinsはどうやら一旦ファイルの情報をJVM上にキャッシュしているよう
mkdir -p conf/dev mkdir -p conf/stg mkdir -p conf/service echo "dev" > conf/dev/config.properties echo "stg" > conf/stg/config.properties echo "service" > conf/service/config.properties ※今回はテストなので適当な設定ファイルを用意します 先ほど記載したprofilesタグの直後に記載します 「maven-resources-plugin」を利用してファイルをコピーします ポイントは phaseタグで「compile」を指定している点 directoryタグで「conf/${configFileDirectory}」を指定している点 pharseタグで「compile」を指定することでmavenコマンド実行時
kakakikikeke Podcast やってます。 趣味で iOS アプリや Android アプリ LINE スタンプを公開しています お問い合わせはこちらから、もしくは Twitter でお願いします。 詳細プロフィールを表示 Linux (79) 日常 (56) Windows (53) Java (44) Zabbix (41) Jenkins (40) emacs (33) RaspberryPi (26) Ruby (25) git (24) shellscript (24) WebService (23) NiftyCloud (21) chef (21) Eclipse (20) Android (19) ゲーム (18) Maven (17) PHP (16) MongoDB (15) MySQL (15) Apache (14) アプリ (14) Redis (13
CentOS系(今回は6系)のJavaインストールでyumを使用するとopen-jdkがインストールされます その場合にjava自体は実行できるようになるのですが、環境変数のJAVA_HOMEが設定されていません 今回はそんな場合のJAVA_HOMEの設定方法を紹介します readlinkコマンドを使用して現在のjavaがどこにあるか確認します readlink $(readlink $(which java)) /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java 上記で確認できたjavaのパスを.bashrcに追記しJAVA_HOMEがログイン時に有効になるように設定します echo "export JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk.x86_64" >> /root/.bashrc source も
CentOS 5.9 64bit maven 3.1.0 Java 1.7.0_05 mavenのインストール方法は以下を参照 ※http://kakakikikeke.blogspot.jp/2013/10/maven.html mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.mycompany.app -DartifactId=my-app 通常のJavaプロジェクトを作成する場合のパラメータです archetypeGroupIdは後述にもありますが、mavenで用意されたテンプレートみたいなものを設定します(独自で作成することも可能) groupIdはいわゆるパッケージ名です artifactIdはいわゆるプロジェクト名です コマンド実行時に入力が必須の部分もあるの
Mac OSX 10.8.5 Eclipse Kepler 4.3 Java 1.6.0_65 Maven 3.1.1 SpringFramework 4.0.3 eclipseを開き New -> Other -> MavenProject を選択し Next をクリックします 次もデフォルトのままNextをクリックします プロジェクトのarchetypeを設定します GroupIdがorg.apache.maven.archetypes、ArtifactIdがmaven-archetype-quickstart を選択します 作成するプロジェクトのGroupIdとArtifactIdを選択する画面になりますので適当に入力します ここでは以下の通り入力しました GroupId・・・com.kakakikikeke.sample ArtifactId・・・java-spring-sampl
Jenkinsの管理 -> プラグインの管理からParameterized Trigger Pluginを選択しインストールします インストール完了後Jenkinsを再起動してください まずはビルドのパラメータを設定します ジョブの設定の上部で「ビルドのパラメータ化」のチェックボックスをONにします 名前(変数名)やデフォルト値、説明は適当に設定してください 次にポイントの「ビルド後の処理の追加」で「Trigger parameterized build on other projects」を選択します ビルド後の処理を追加したら 「Projects to build」 に下流のジョブをを設定します、ここでは下流のジョブを batch______test2 としています 下流ジョブを設定すると上流ビルドの終了後に自動で実行されるようになります 「Add Parameters」 も設定します
Jenkinsのビルドでnotepad.exe等を指定するとバックグランドでメモ帳が開かれて見ることができません 今回はJenkinsがバッググラウンドで開いたnotepad.exeを見る方法を紹介します
実行ユーザがLocal SystemになっているためWindowsに設定しているJAVA_HOME等の環境変数が有効になっていない ■解決方法 ファイル名を指定して実行からservices.mscを入力 一覧からJenkinsを探す 右クリックからプロパティを開く プロパティダイアログが開いたらログオンタブを選択 アカウントを選択しWindowsにログインするユーザ名とパスワードを入力する アカウントを検索した場合は参照から検索できる 名前を入力して「名前の確認」というボタンを押下するとそのユーザがいるかどうかを確認できる アカウントが設定できたらプロセスの一覧画面に戻り右クリックから再起動を実施すると環境変数が反映される Jenkinsでの環境変数の参照は「$HENSU」ではなく「%HENSU%」のようにパーセントで囲んで参照する Jenkinsの環境変数にWindowsパスを使う場合は
そもそもX-Forwarded-Forを使う場合ですが基本はロードバランサを使っているときです Webサーバに到達した際にアクセス元のIPがロードバランサになってしまうので 本当のアクセス元IPを取得するためにX-Forwarded-Forの設定を実施します 今回はログの出し方とX-Forwarded-Forを使ったIP制限の方法を紹介します またapacheのインストールはchefを元に実施しているものとします X-Forwarded-Forはhttpで受ける際に取得することができる値です http(LB)→http(server) httpsでX-Forwarded-Forを使いたいときには SSLアクセラレータ付きのLBを使用しておりかつサーバ証明書を取得しておりかつサーバ側は80番ポートで受ける必要があります https(LB + SSLアクセラレータ + 証明書)→http(se
以下のスクリプトを適当な場所に配置し実行します 事前に「elasticsearch -f」でelasticsearchを起動しておいてください #!/bin/sh count=1 cat /var/log/messages | while read line do date=`echo ${line} | awk '{print $1,$2,$3}'`; hostname=`echo ${line} | awk '{print $4}'`; message=`echo ${line} | awk '{for(j=5;j<NF;j++){printf("%s ",$j)}print $NF}'`; timestamp=`date "+%Y-%m-%d %H:%M:%S"` #echo ${date} ${hostname} ${message} curl -X POST http://loc
curl --proxy-ntlm --proxy sample.proxy.com:8080 www.nifty.com curlコマンドは設定ファイルでproxy設定ができないので、以下のような感じでaliasを通しておくといいかもしれません alias curl='curl --proxy-ntlm --proxy sample.proxy.com:8080' P.S curl用の設定ファイルはあるようです・・・ ~/.curlrc に proxy = "http://sample.proxy.com:8080" を設定するとプロキシ設定になるようです
wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.5.tar.gzs tar xvzf elasticsearch-0.90.5.tar.gz mv elasticsearch-0.90.5 /usr/local/ cd /usr/local/ ln -s elasticsearch-0.90.5/ elasticsearch vim /root/.bashrc export ELASTIC_SEARCH=/usr/local/elasticsearch export PATH=$ELASTIC_SEARCH/bin:$PATH source /root/.bashrc elasticsearch -f netstat -an | grep 9200 最終的に9200
次のページ
このページを最初にブックマークしてみませんか?
『kakakikikekeのブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く