【JIRA】テスト環境で作成したワークフローを、本番環境に移動
ω-) ・・久しぶりの投稿
JIRAの管理をしている人がもしかしたら訳に立つかもしれないというまとめメモ。
(すごくコアなスコープだw)
JIRA上で使うワークフローを新しく検討している時に、
検証環境で作ったワークフローを、実際に使おうとしたときのメモ
【svn】svnsync: E160028
久しぶりにsvnのバックアップがこけた。
2014年 5月 2日 金曜日 12:00:27 JST Command Str = /usr/local/svn/bin/svnsync sync svn+ssh://{backupserver}/data/svn/repos/game svnsync: E160028: ディレクトリ '/content/trunk/public/img/material/chapter/hogehoge' はリポジトリ側と比べて古くなっています exit-status is 1
え、ちょっと何いってるか分からない。
hogehogeディレクトリを本体とbackupから、それぞれチェックアウトしてみた
# #本体 $svn checkout http://{svnserver}/svn/game/content/trunk/public/img/material/chapter/hogehoge #確認 $svn info //略 Revision: 331982 ##backup(backupはhttpでいけないようにしてる) $svn checkout svn+ssh://{backupserver}/data/svn/repos/game/content/trunk/public/img/material/chapter/hogehoge #確認 $svn info //略 Revision: 331661
Rev が331661以降でsyncが止まっている様子。
なんで止まってるんだお。。
少し前のログから辿ってみる
##本体 $ svn log -v -r 331660:331662 http://{svnserver}/svn/game/content/trunk/public/img/material/chapter ------------------------------------------------------------------------ r331660 | user | 2014-05-01 21:14:58 +0900 (木, 01 5 2014) | 1 line Changed paths: D /content/trunk/public/img/material/chapter/hage ------------------------------------------------------------------------ r331661 | user | 2014-05-01 21:15:11 +0900 (木, 01 5 2014) | 1 line Changed paths: A /content/trunk/public/img/material/chapter/hogehoge ------------------------------------------------------------------------ r331662 | user | 2014-05-01 21:27:58 +0900 (木, 01 5 2014) | 1 line Changed paths: A /content/trunk/public/img/material/chapter/hogehoge (from /content/trunk/public/img/material/chapter/hogehoge:331661) ------------------------------------------------------------------------ ##backup $ svn log -v -r 331660:331661 svn+ssh://{backupserver}/data/svn/repos/game/oslo-content/trunk/public/img/material/chapter/ pnsk@{backupserver}s password: ------------------------------------------------------------------------ r331660 | user | 2014-05-01 21:14:58 +0900 (木, 01 5 2014) | 1 line Changed paths: D /content/trunk/public/img/material/chapter/hage ------------------------------------------------------------------------ r331661 | user | 2014-05-01 21:15:11 +0900 (木, 01 5 2014) | 1 line Changed paths: A /content/trunk/public/img/material/chapter/hogehoge
うーん。r331662 でADDしてるけど、うまく反映されてない様子。
対処方法
今回の場合は、r331662とr331662で、hogehoge配下のファイルの差分が確認できた(ファイルのあるなし)ので、
本番から対象ファイルをcheckoutしてきて、backupサーバにコミットした。
(バックアップ側のrevision番号を直接インクリメントした形になった)
【読書】アート・オブ・プロジェクトマネージメント 第一章
最近、読書とかほとんどしてこなかったけど、たまには読書。
個人的なつまみ食いなので、
この本が重要だと言っていても、刺さらなかったものは書いてない(´・ω・`)
第一章 プロジェクトマネジメントの簡単な歴史
1.1歴史に学ぶ
プロジェクトの根底にある概念
- 過去の教訓が活かせるものと、そうじゃないものがある
- 作業をよりシンプルなところから見る
- 「シンプル」とは、簡単という意味ではない
要は、「プロジェクトに向き合う」ことが大事。
この言葉こそシンプルだけど、本当に重要な事だと思う。
複雑な事を色々考えて足踏みしていないで、プロジェクトとしっかり向き合おう。
できることから切り分けてプロジェクトを成功へと導いていこう
1.1.1失敗から学ぶ
ふむ。
1.4マイクロソフトにおけるプログラムマネジメントとプロジェクトマネジメント
プロジェクトマネジメントは、
プロジェクトを成功させるということ全力を尽くす
「プロジェクトを成功させるということ全力を尽くすということ」
1.5プロジェクトマネジメントにおけるバランス感覚
適切な状況下で適切な態度をとる
これは、難しい。いつも苦戦しています。
試行錯誤してるから、ただの優柔不断やろうとか気まぐれ野郎と思われていたらどうしようか。。
エゴと非エゴのバランス
- エゴはプロジェクトの推進力になる
- エゴがプロジェクトの障害になる
これも本当にコワイ・・・。
「信念」は持たないといけないけど「拘り」は持っては行けない。
この境い目は!? いつもよくわからなくなって、うまく定義分けできず、この辺はみんなどうしているんだろう。
独裁と委譲のバランス
- 権限の明確化と迅速な対応
- 協力して物事を進めていく
曖昧さの許容と完全性の追求
- プロジェクトの前半において、統制された曖昧さはアイディアを洗い出す
- プロジェクトの後半において、規律と正確さが大事
口頭と文書
- 面と向かうことでのコミュニケーションの効率化
- 規模が大きくなると文書化が大事
複雑さの容認と簡潔さの支持
- 多くのものが複雑さの犠牲になる
- 複雑さを拒絶しすぎて、プロジェクトを失敗させてはならない
焦りと忍耐
- 檄を飛ばす
- 黙ってみまもる
勇気と恐れ
- 勇気を持って、恐れに立ち向かえ
信者と懐疑論者
- 自らの作業に自信をもつこと
- 自らの作業に疑問をもつこと
1.6プレッシャーとプロジェクトの敵
現状維持は成果ではない
成果には変化が必要である
変化にはプレッシャーがつきものだが、
プレッシャーを避けてはいけない
1.6.1プロセスと目標を取り違える
小さな作業をこなすことは、プロセスであって、それはプロジェクトではない
プロジェクトマネジメントは、プロセスや方法論に注力するのではなく、チームに注力するべき
「チームが成果を出すように」
1.7正しい関与の仕方
関与し過ぎてはいけない
リーダーやマネージャーは、周囲にいる人の価値を増幅させる役割
マネージャーは非難を一身に受けるし、隠れる場所もない
信念、自信、自覚の全てが必要
1.7.1あなたの観点からの強み
必要な情報をタイミング良くチームに流す
【node.js入門】 CentOSに入れる
д・)チラッ
最近、犬ブログに必死になって更新をさぼっていた。
node.jsをCentOSに入れたときのメモ
OSのバージョンはこんな感じ
$ cat /etc/issue CentOS release 6.2 (Final)
node.jsのダウンロード
ダウンロードページよりhttp://nodejs.org/download/「Linux Binaries (.tar.gz)」を落としてくる
展開して、適当なところに移動
$cd /tmp $wget http://nodejs.org/dist/v0.10.25/node-v0.10.25-linux-x64.tar.gz $tar -xzvf node-v0.10.25-linux-x64.tar.gz $mv node-v0.10.25-linux-x64 /usr/local/
nodeとnpmコマンドはここにあるっぽいので
/usr/local/node-v0.10.25-linux-x64/bin $ ls node npm
それぞれパスを通して
$ln -s /usr/local/node-v0.10.25-linux-x64/bin/npm /usr/bin/npm $ln -s /usr/local/node-v0.10.25-linux-x64/bin/node /usr/bin/node
確認
$npm -v 1.3.24 $ node --version v0.10.25
でけた
【Homebrew】playframework 1系をインストール
ひさしぶり。
もともとplayの2系が入っていたんだけど、1系もmacに同居させたい需要ができたのでインストールした。
今入ってるのは、play2.1.3
playのダウンロードページより、1系の一番新しいものを入れた
http://www.playframework.com/download
Formulaの作成
$ brew --version 0.9.5 $ brew create http://downloads.typesafe.com/play/1.2.7/play-1.2.7.zip --set-name play1
formulaの編集画面がでるので、こんな感じにした。
playコマンドで2系が実行されるので、1系はplay1で実行できるようにしている
require 'formula' class Play1 < Formula homepage 'http://www.playframework.org/' head 'https://github.com/playframework/play1.git' url 'http://downloads.typesafe.com/play/1.2.7/play-1.2.7.zip' sha1 '436739d9f7cc00567a7e4245413c9c1ebf886797' def install system "./framework/build", "publish-local" if build.head? # remove Windows .bat files rm Dir['*.bat'] rm Dir["#{buildpath}/**/*.bat"] if build.head? libexec.install Dir['*'] bin.install_symlink libexec/'play' => "play1" end end
構文のチェック
$ brew doctor play1 Your system is ready to brew.
大丈夫そう。
インストール
$ brew install play1 ==> Downloading http://downloads.typesafe.com/play/1.2.7/play-1.2.7.zip Already downloaded: /Library/Caches/Homebrew/play1-1.2.7.zip 🍺 /usr/local/Cellar/play1/1.2.7: 3110 files, 98M, built in 4 seconds
確認
$ play1 ~ _ _ ~ _ __ | | __ _ _ _| | ~ | '_ \| |/ _' | || |_| ~ | __/|_|\____|\__ (_) ~ |_| |__/ ~ ~ play! 1.2.7, http://www.playframework.org ~ ~ Usage: play cmd [app_path] [--options] ~ ~ with, new Create a new application ~ run Run the application in the current shell ~ help Show play help ~
おまけ
paginate-head
プロジェクト配下で
play1 dependencies
と打ったら
~ Module not found: /usr/local/Cellar/play1/1.2.7/libexec/modules/paginate-head
っていうエラーがでた。
play install でモジュールインストールして
~ You can now use it by adding it to the dependencies.yml file: ~ ~ require: ~ play -> paginate head
これ対応すればよい
以下ログ
$ play1 install paginate-head ~ _ _ ~ _ __ | | __ _ _ _| | ~ | '_ \| |/ _' | || |_| ~ | __/|_|\____|\__ (_) ~ |_| |__/ ~ ~ play! 1.2.7, http://www.playframework.org ~ ~ Will install paginate-head ~ This module is compatible with: 1.x ~ Do you want to install this version (y/n)? y ~ Installing module paginate-head... ~ ~ Fetching http://www.playframework.org/modules/paginate-head.zip ~ [--------------------------100%-------------------------] 18370.8 KiB/s ~ Unzipping... ~ ~ Module paginate-head is installed! ~ You can now use it by adding it to the dependencies.yml file: ~ ~ require: ~ play -> paginate head
悶々と CVSのクローズについて考える
gitとかいっといて、cvsまだ閉じてなかったのかとか言わないで。。(・-・)
CVSのクローズにあたって・・・
ちなみにOS古め(年期が感じられるな)
$ cat /etc/issue CentOS release 4.6 (Final)
CVSの停止
さてはて。移行が一段落おわりました。
CVSクローズ宣言を何度周知したかはわかんないくらいしたけどついにクローズの日を迎えました。
でもチキンだから、実は活かしたまま、みんなアクセスできなくなればいい的な対応をしたかった(・-・)
作戦
sshのポートをかえる
22以外にする。
ポートスキャンされない限りはばれないのでは。。。
実質何も無効化せずにできる。
その気になれば、ポート戻せば、復活。
でも、実質何もはじいてない辺りが私無理・・。
しかもコワイ。あんまりやりたくない。他の方法がいい(・-・)
iptablesで特定ip以外をはじく
私の管理している特定のサーバからのみアクセスできるようにする
これが一番betterかもって考えた(・-・)
コワいのには変わりないけど(・-・)
$ /sbin/iptables --version
iptables v1.2.11
初期状態は基本的には、すべて受け付けている状態
$ /sbin/iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
特定IPの追加して他を拒否
#IP追加 $ /sbin/iptables -A INPUT -s xxx.xxx.xxx.xxx -j ACCEPT #他を拒否 $/sbin/iptables -A INPUT -s! xxx.xxx.xxx.xxx -j DROP
ぶっちゃけ他を拒否する段階で!は必要ないかもしれないけど、チキンだったのでやってしまった。
これでいけるじゃーんって思ったけど、これによってLDAPアカウント使えなくなった・・・(・-・)
隠しアカウントでもログインできないジャーンって、サーバ再起動した(・-・)
結局のところ、ローカルユーザでログインできるけどLDAPのタイムアウトまで結構待たなきゃ行けないという現象であった。
タイムアウト遅すぎて使えなくなったかと思った(・-・)
LDAP無効化
そんなこんなでiptablesは今回はやりたくないってなった。
NWとかはじかずに、LDAPで認証できなくすればいいじゃん。ってなった。
ビルドツール用のアカウントはログインできないようにだけしておく
事前にLDAPじゃないローカルアカウントを作っておいてログインできることを確認。
#LDAPとLDAP認証無効化 $ authconfig --disableldap --disableldapauth
あとは、不要なローカルユーザの無効化
$/usr/sbin/usermod -s /sbin/nologin hoge
これでひとまず。。。
今日はiptablesのコワさで神経使ったやい
追記
CentOS 6.2でそのまま動かなかった
$cat /etc/issue CentOS release 6.2 (Final) $LANG=en_US.UTF-8 authconfig --disableldap --disableldapauth --updateall nslcd を停止中: [ OK ] nscd を起動中: [ OK ] #確認 $authconfig --test | grep ldap nss_ldap is disabled LDAP server = "ldap://xxx.xxx.xxx.xxx/,ldap://xxx.xxx.xxx.xxx/" pam_ldap is disabled LDAP server = "ldap://xxx.xxx.xxx.xxx/,ldap://xxx.xxx.xxx.xxx/" ##何もかえってこないはず $ grep ldap /etc/nsswitch.conf
【JIRA】GHEとの連携
最近、トライアルでJIRAをさわてみてるので、色々メモしてこ〆(._.)メモメモ.
JIRAのバージョンは6.0.3
GHEのバージョンは11.10.314
GHE側の設定
JIRAとGHEはOAuth認証をするので、GHEのクライアントIDを発行しますよ。
Applicationの作成
管理者のアカウントでApplicationを作成します。
Account settingsのページに移動して、Appilicationsを選択。
Developer applicationsの【Register new application】
JIRAのホームURLを登録するとクライアントIDとクライアントSecretが発行されるお
発行された画面は割愛。
JIRA側の設定
管理ユーザでJIRAにログインして「アドオン」タブを選択
その1「GitHub Enterprise OAuth Settings」の設定をする
さっきフロー4のところで、GHE側で発行したクライアントIDとクライアントSecretを登録する。
ホストURLはGHEのホームのURLにする
DVCS Accountsの設定をしまふ
ボタンぽっちして
GitHubEnterpriseを選択して、JIRAと連携したいorganazationを指定を登録。
今回は、ideっていうorganazationと連携させてみたよ
この時、自分が管理権限を持っているorganazationしかできないので注意
できた。repoの内容をsyncしている様子。。syncかー
なんか連携してみる
JIRAプロジェクトのJIRA-14という課題チケットと紐づける
GHE側の作業
テスト用のGHEリポジトリつくって
なんか適当にコミットするときに、課題IDをコミットメッセージに指定すれば良い。
課題IDをメッセージにいれると、その課題のCommitタブのところでGHEの変更内容が連携される
リンクに飛ぶと、対象コミットの変更履歴を参照することができる
また、対象プロジェクトのアクティビティにも表示されるお