Hubotと戯れる
Hubotインストール
$yum install npm $yum install nodejs
バージョンはこんな感じ
$node --version v0.10.28 $npm --version 2.5.0
で、必要なモジュールとか入れる
#npm install coffee-script hubot -g #npm install -g yo generator-hubot
で、このままhubot動かそうとするとやたら権限まわりで怒られる。
良く見ると npmでグローバルインストールすると`/usr/lib/node_modules`配下にインストールされてくるんだけど、なんか権限が軒並みこんな感じになってた。 nobody....
ll /usr/lib/node_modules/ | grep hubot drwxr-xr-x 9 nobody cy_admin 4096 2月 13 18:46 2015 hubot
yumでインストールしたやつは軒並みrootになっているんだけど。。
とりあえず、あとでインストールしたものは、`chown -R root. hubot`みたいに権限を合わせました。
このままでも権限のエラーがでるんだけど、どうやら、実行ユーザのホームディレクトリ配下に `.npm`ディレクトリがあって色々キャッシュしている様子。
この中できっと権限がごちゃごちゃしちゃってるのであろう。。。てことで削除したらひとまず準備完了
hubot起動など
$mkdir chako $cd chako $ yo hubot
テスト
$cd chako $./bin/hubot Hubot> hubot ping PONG
hipchatと連携
$cd chako $npm install hubot-hipchat
これみて設定いれただけ。
hipchat/hubot-hipchat · GitHub
#!/bin/sh set -e npm install export PATH="node_modules/.bin:node_modules/hubot/node_modules/.bin:$PATH" export HUBOT_NAME="chako" export PORT=80 #see https://github.com/hipchat/hubot-hipchat export HUBOT_ADAPTER="hipchat" export HUBOT_HIPCHAT_JID="hogehoge@chat.hipchat.com" export HUBOT_HIPCHAT_PASSWORD="hogepassword" #optional export HUBOT_HIPCHAT_ROOMS="hogeroom@chat.hipchat.com,hoge2room@chat.hipchat.com" #export HUBOT_HIPCHAT_ROOMS_BLACKLIST="" #export HUBOT_HIPCHAT_JOIN_ROOMS_ON_INVITE="" #export HUBOT_HIPCHAT_HOST="cyberagent.hipchat.com" #export HUBOT_HIPCHAT_XMPP_DOMAIN="" #export HUBOT_LOG_LEVEL="debug" #export HUBOT_HIPCHAT_RECONNECT="" exec node_modules/.bin/hubot "$@"
optionalで色々指定できるみたいだけど、特に何も指定していない。
hubot-hipchatは、hipchatに5222ポートで通信しにいくのでサーバからポート空いてるのを確認してれば問題ない
hubotのスクリプトを使ってみる
カタログがいくつかあるので、楽しそうなのを追加する
Hubot Script Catalog
hubot-scripts.json
に追加すれば良いらしい
ちょっとやってみた
["room-info.coffee","flip.coffee"]
room-infoの方はこんな感じ
hubot-scripts/room-info.coffee at master · github/hubot-scripts · GitHub
※chako_testというhipchatのroomでやってる
flipの方はこんな感じ
hubot-scripts/flip.coffee at master · github/hubot-scripts · GitHub
※flipをnpm installした
hubotのスクリプトを書いてみた
GHEのライセンスの利用状況ができるものと、サイズの大きなリポジトリランキング(2GB以上のもの)を表示するスクリプトを書いた。
使ったAPIはこれ
Enterprise | GitHub API
Search | GitHub API
ライセンスのAPIはGHEの2.1から利用できるものらしい
hubot-script/ghe-status.coffee at master · pnsk/hubot-script · GitHub
でたでた
なんかもっとちゃんと書けそうだけど・・・。いったん。。
ちゃんちゃん。
【maven】帰ってきたnexusの設定いろいろ
アカウントの設定
Security > LDAP Configurationで設定する
LDAP認証
ユーザはLDAPアカウントでログインできるようにする。
LDAPのログイン条件は、こんな感じ
$ldapsearch -x -h xxx.xxx.xxx.xxx "(&(uid=*)(description=maven))"
LDAPアカウントを持っていればOKではなくて、descriptionでフィルタをかけている
ユーザとグループのマッピング
設定内容はこんなかんじ
個別アカウントの設定
CIツール経由でmvn deployする場合等を想定して、ユーザアカウントとは別でアカウントを作成する
Security>Usersから
「Nexus User」を選択してアカウントを作成する。
roleの制御
さてはて。作成したユーザに権限(role)を設定する
Security>Rolesから、権限の指定をできる
結構細かく権限の付与をすることができる
roleのカスタマイズ
「Nexus Role」を選択
「Add」から好きなのを組み合わせる。
今回は、deployの権限と、artifact uploadを組み合わせた権限を作ったお
LDAPで紐づけたアカウント群にroleを付与
「External Role Mapping」を選択する
LDAPで設定されているdescriptionたちが沢山出てくる(なんか色々あれなので一部モザイク・・)
これはユーザ作成時にGroupMappingでdescriptionを指定したから、出てくる。
今回はmavenを選択して、descriptionがmaven(本当はhogehoge.mavenだけど)に該当するユーザに権限を付けていく
最初はこんな感じで作成されるから「add」を選択して、権限つけて「save」すれば完成
今回はあらかじめ作成しておいた、カスタマイズしたroleを追加した。
ポートの変更
nexus.propertiesで変更できる。
${NEXUS_HOME}/nexus/conf/nexus.properties
でも80とかにはできないお。nexusさんjetty使ってるので。
リポジトリの設定
リポジトリは大枠で3つ管理するイメージ
nexusに直接あげた内部ライブラリ
標準で用意されている「Releases」と「Snapshot」を利用する。
nexusにログインして直接アップロードしても良いし、pom.xmlに設定してアップロードしても良い。
アップロードは、ユーザにアップロード用のroleが設定されている必要がある
3rdpartyのライブラリ単体
標準で用意されている「3rdparty」を利用する。
但し、なるべくライブラリ単体ではなくて、リポジトリが存在するならそれを指定すべき。
外部mavenリポジトリの登録
外部のmavenリポジトリは、proxyリポジトリとして登録する
例えば、Springframeworkのmavenリポジトリを登録する場合
http://maven.springframework.org/release/
Views/Repositories>Repositoriesから
設定内容
- Repository id:org.springframework.maven.release
- Repository Name:Spring Maven Release Repository
- Repository Policy:release
- Remote Storage Location:http://maven.springframework.org/release/
Repository Policyは登録するリポジトリに合わせる(snapshotとか)
【maven】帰ってきたnexusのインストール
すごく昔に、nexusを構築したんだけど、最近また構築しなきゃいけなくなったー
ReleaseNote
Sonatype Nexus Release Notes Index : Sonatype Support
2.11.1にしよう。
何気に、最終更新日が2014/12/19だし。
Sonatype Nexus 2.11.1 Release Notes : Sonatype Support
ダウンロード
Pro版もあるけど、OSS版を入れます
Download and Install Nexus OSS | TheNEXUS
ブラウザ上でダウンロードして、scpした。
今回は/data/nexus配下にnexusを入れる
$ cd /data $ mkdir nexus
ローカルに落としてきたnexusを移動して展開
$mv nexus-2.11.1-01-bundle.tar.gz /usr/local/src/ $cd /usr/local/src/ $tar -xzvf nexus-2.11.1-01-bundle.tar.gz -C /data/nexus/ #確認 $cd /data/nexus/ $ls nexus-2.11.1-01 sonatype-work
2つディレクトリができた
nexusディレクトリは,nexus自体のアプリケーション,sonatype-workディレクトリは,リポジトリに関連する情報が入っている.
nexusのバージョンをあげる場合はnexusディレクトリのみ更新すれば問題なく動作する(たぶん).
バージョンまた変わったときに便利なように、シンボリックリンク貼っておく
$ln -s nexus-2.11.1-01 nexus $ll | grep nexus lrwxrwxrwx 1 root root 15 1月 6 17:51 2015 nexus -> nexus-2.11.1-01 drwxr-xr-x 8 root root 4096 12月 17 10:23 2014 nexus-2.11.1-01
nexus用のユーザ作成
えいっ
$groupadd cy_nexus $ useradd cy_nexus -g cy_nexus #確認 $id cy_nexus uid=10001(cy_nexus) gid=10001(cy_nexus) 所属グループ=10001(cy_nexus)
やあっ
$ll /data | grep nexus drwxr-xr-x 4 root root 4096 1月 6 17:51 2015 nexus $chown -R cy_nexus. nexus $ll /data | grep nexus drwxr-xr-x 4 cy_nexus cy_nexus 4096 1月 6 17:51 2015 nexus
起動
さてはて。
Sonatype Nexus 2.0 through 2.8.1 Release Notes : Sonatype Support
なんか2.7のところで、2.0からOS毎のスクリプトはdeprecatedしてたけど削除したよって書いてる
(あるけど)
Legacy Startup Scripts Removed
The old startup scripts (located under $NEXUS_HOME/bin/jsw/$ARCH in the installation directory) have finally been removed. These have been deprecated since Nexus 2.0. Users should use the new startup scripts introduced in Nexus 2.0, located in $NEXUS_HOME/bin (NEXUS-5781). The 'clickable' Windows batch files (*-nexus.bat) have remained, but the only use case for these are to be 'clicked' to perform a specific named action.
nexusさんオススメのやり方でやろう。
ちょっと実行してみる
$/data/nexus/nexus/bin/nexus Usage: /data/nexus/nexus/bin/nexus { console | start | stop | restart | status | dump }
ほほ。
起動スクリプト
以前作ったやつの引用(冒頭)
$vi /etc/init.d/nexus
中身はこんな感じ
#!/bin/sh # description: nexus start/stop Script # 実行ユーザの指定 export RUN_AS_USER=cy_nexus # user check if [ `/usr/bin/whoami` != "root" ]; then echo "This script is only for root." exit 1 fi NEXUS_HOME=/data/nexus/nexus #nexusの起動 ${NEXUS_HOME}/bin/nexus $@ exit 0
実行権限付与
$ chmod +x /etc/init.d/nexus $ ll /etc/init.d/nexus -rwxr-xr-x 1 root root 295 1月 6 19:09 2015 /etc/init.d/nexus
よし。実行
$/etc/init.d/nexus start
Starting Nexus OSS...
Started Nexus OSS.
http://xxx.xxx.xxx.xxx:8081/nexus/#welcome
立ち上がった
admin/admin123
でログインできる
2014年の振り返り
【apache】インストールめも
作業めも(ΦωΦ)♪
とある検証環境を急遽たてなきゃいけなくなったので
apache 2.2系をインストールする必要があったのでその時の作業メモ
環境
$ cat /etc/issue CentOS release 6.2 (Final)
ダウンロード
ここから落としてきた
Download - The Apache HTTP Server Project
# apacheのパッケージをインストール $cd /usr/local/src/ $ wget http://ftp.tsukuba.wide.ad.jp/software/apache//httpd/httpd-2.2.29.tar.gz #解答 $ tar -xzvf httpd-2.2.29.tar.gz
apacheのインストール
オプションで指定するのは大きく2種類
- prefixオプションでapacheのホームディレクトリを指定
- 必要なオプションを有効にする
とりあえず、今回はすでにあるサーバの検証環境用なので、同様のモジュールが入っているように気をつけた
不要なモジュールがありそうだけど・・・
#### 本番側のモジュールの確認 $ /usr/local/apache/bin/apachectl -M Loaded Modules: core_module (static) authn_file_module (static) authn_default_module (static) authz_host_module (static) authz_groupfile_module (static) authz_user_module (static) authz_default_module (static) auth_basic_module (static) filter_module (static) deflate_module (static) log_config_module (static) env_module (static) headers_module (static) usertrack_module (static) setenvif_module (static) version_module (static) proxy_module (static) proxy_connect_module (static) proxy_ftp_module (static) proxy_http_module (static) proxy_scgi_module (static) proxy_ajp_module (static) proxy_balancer_module (static) mpm_worker_module (static) http_module (static) mime_module (static) status_module (static) cgid_module (static) dir_module (static) alias_module (static) rewrite_module (static) so_module (static) Syntax OK
この中で、明示的に指定しないと入らなそうなものを探して指定する事にした。
目grep。。。
とりあえず明示的に enableってのがないモジュールは標準で入るのであろうと・・・
インストール実行
$cd httpd-2.2.29 $./configure --prefix=/usr/local/apache2 --enable-deflate --enable-headers --enable-usertrack --enable-proxy --enable-proxy --enable-proxy-connect --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-proxy-scgi --enable-proxy-ajp --enable-proxy-balancer --with-mpm=worker --enable-http --enable-cgid --enable-rewrite --enable-so $ make $make install
メモ:INSTALLファイルはちらみした
#######ヘルプ $cd httpd-2.2.29 #ヘルプ:インストールするモジュールたちなど、オプションがのってる $./configure --help #######INSTALLファイル $cd httpd-2.2.29 $ less INSTALL
メモ:configureのhelp
$cd httpd-2.2.29 $./configure --help
メモ:deflate_moduleのエラー
deflate_moduleはconfigureのときにエラーがでた。
zlib や zlib-develがないと怒ってくるらしい。今回はzlibさんはいたのでzlib-develさんだけインストール
$ yum install zlib-devel.x86_64
ちょこちょこ
$ln -s /usr/local/apache2 /usr/local/apache
バージョンアップの時とか、必要になったら付け替えられるように
構築してからユーザ作ってないの気づいた・・orz
$ groupadd cy_httpd $ useradd cy_httpd -g cy_httpd # 確認 $ id cy_httpd uid=21552(cy_httpd) gid=20278(cy_httpd) 所属グループ=20278(cy_httpd)
$ chown -R cy_httpd. apache2
起動
$/usr/local/apache/bin/apachectl start
追記
モジュールの有効化について
今回は、必要なモジュールが事前にわかっていたのだけど、わかっていない状態であれば、
soモジュールさえいれていれば、あとで動的モジュールを追加することができるので
標準モジュールだけでmakeしてしまってもいいかもしれない
個人的なログ
LINEのスタンプを作ってみよう その1
|・ω・`)コッショリ
エンジニアだけど、どうにか頑張ったらLINEのスタンプもどきくらいを作れるようにならないかと、
気晴らし程度に少しずつやってみようと思った。
クリエイター登録
LINEのアカウントを持っていたので、個人情報だけ追加登録。
審査ガイドライン
ひとまず、広告とか、露出高いのとか、誹謗中傷なければ大丈夫そう。
写真とか、文字だけのものはダメっぽい
ただ、Sキャラのスタンプを作ろうと企んでたからキャラクターの台詞は検討しなおさなければいけないな。。。
つくる
ひとまず作ってみよう。
このページを参考にしてそのままやった。
【超初心者向け!!】秒速でLINEスタンプを自作する方法!|合同会社チームサンタ
このページ素敵すぎた(*゜∀゜*)♪
※内容は参考記事のまんま。。。でも自分めもだし。。うんうん(言い訳
手書きのキャラクターをiPhoneで撮影して、macに移動。
メールで送ったので、それをひとまず、適当なフォルダに保存。
今回は、キャラクターの名前が「saori」なのでそのフォルダを作成して、そこに写真たちを保存した
「インスタントアルファ」を使って背景を選択して、「delete」ボタン
pngとして保存する
まず、トリミングをして、
幅でも高さでもいいので、規定の範囲内になるようにサイズを変える。
保存
まじで参考ページに載ってるままにやったらできた(○≧ω≦)♪
なんて素敵なサイトなんだ。
同サイトにのっていたシュミレーションツールを使う
LINEクリエイタースタンプシミュレーター|LINEスタンプ検索サイト Stampers(スタンパーズ)
とりあえずテンションあがるなこれ。