気ままなつぶやき

おべんきょしたこととか

【JIRA】テスト環境で作成したワークフローを、本番環境に移動

ω-) ・・久しぶりの投稿

JIRAの管理をしている人がもしかしたら訳に立つかもしれないというまとめメモ。
(すごくコアなスコープだw)

JIRA上で使うワークフローを新しく検討している時に、
検証環境で作ったワークフローを、実際に使おうとしたときのメモ

テスト環境で作成したワークフローをエクスポートする。

今回はxml形式にしますた

f:id:pnsk:20140618104447p:plain

適当にデスクトップにダウンロード。

作成したxmlをインポートする

本環境でインポートする

f:id:pnsk:20140618111357p:plain

本当はファイルパスの手段もあるけど面倒だから、ぺろっとコピペしちゃいました。。
xmlファイルをわざわざサーバにあげるのをめんどくさがってしまいますた
f:id:pnsk:20140618111435p:plain

非アクティブな状態で追加が確認できた
f:id:pnsk:20140618111514p:plain

ステータスの調整

だいたいそのまんまは使えない

うまく引き渡せなかったステータスを作成する

移行先に存在しないステータスは、?という形で表現されている。
f:id:pnsk:20140618111544p:plain

リンクされたステータス
f:id:pnsk:20140618111625p:plain

課題属性のステータスを追加

必要なワークフローを追加する
f:id:pnsk:20140618150545p:plain

こんな感じ。
f:id:pnsk:20140618150610p:plain

ステータスを変更すると、さっきまで?で表現されていた物が修正された
f:id:pnsk:20140621172900p:plain


ちゃんちゃん

【svn】svnsync: E160028

久しぶりにsvnのバックアップがこけた。

201452日 金曜日 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番号を直接インクリメントした形になった)

【読書】アート・オブ・プロジェクトマネージメント 第一章

最近、読書とかほとんどしてこなかったけど、たまには読書。

アート・オブ・プロジェクトマネジメント ―マイクロソフトで培われた実践手法 (THEORY/IN/PRACTICE)

個人的なつまみ食いなので、
この本が重要だと言っていても、刺さらなかったものは書いてない(´・ω・`)

第一章 プロジェクトマネジメントの簡単な歴史

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にあるものはsvnやらgitやらに移行しました。

  • 基本はGitHub Enterpriseに。
  • 画像の管理に使ってるのかな的なものはsvnに。

て感じの流れで。

可能な限り臨機応変に。
可能な限りサポート。

CVSの停止

さてはて。移行が一段落おわりました。
CVSクローズ宣言を何度周知したかはわかんないくらいしたけどついにクローズの日を迎えました。

でもチキンだから、実は活かしたまま、みんなアクセスできなくなればいい的な対応をしたかった(・-・)

現状

認証:LDAP
ユーザのアクセス:ext+sshLDAPアカウントを使って操作出来る(各拠点、各データセンターから)
プロジェクトユーザ:ビルドツールとかからは、LDAPとは別に、アカウントがある

作戦

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を選択。
f:id:pnsk:20130816193954p:plain

Developer applicationsの【Register new application】
f:id:pnsk:20130816194213p:plain


JIRAのホームURLを登録するとクライアントIDとクライアントSecretが発行されるお
発行された画面は割愛。
f:id:pnsk:20130816195211p:plain

JIRA側の設定

管理ユーザでJIRAにログインして「アドオン」タブを選択
f:id:pnsk:20130813181642p:plain

その1「GitHub Enterprise OAuth Settings」の設定をする

f:id:pnsk:20130816193746p:plain

さっきフロー4のところで、GHE側で発行したクライアントIDとクライアントSecretを登録する。
ホストURLはGHEのホームのURLにする
f:id:pnsk:20130816195537p:plain

DVCS Accountsの設定をしまふ

f:id:pnsk:20130813181752p:plain

ボタンぽっちして
f:id:pnsk:20130816195914p:plain

GitHubEnterpriseを選択して、JIRAと連携したいorganazationを指定を登録。
今回は、ideっていうorganazationと連携させてみたよ
f:id:pnsk:20130816200406p:plain

この時、自分が管理権限を持っているorganazationしかできないので注意

できた。repoの内容をsyncしている様子。。syncかー
f:id:pnsk:20130816200442p:plain

なんか連携してみる

f:id:pnsk:20130819175724p:plain
JIRAプロジェクトのJIRA-14という課題チケットと紐づける

GHE側の作業

テスト用のGHEリポジトリつくって
f:id:pnsk:20130816204238p:plain

なんか適当にコミットするときに、課題IDをコミットメッセージに指定すれば良い。

f:id:pnsk:20130819175848p:plain

課題IDをメッセージにいれると、その課題のCommitタブのところでGHEの変更内容が連携される
f:id:pnsk:20130819180006p:plain

リンクに飛ぶと、対象コミットの変更履歴を参照することができる

f:id:pnsk:20130819180050p:plain

また、対象プロジェクトのアクティビティにも表示されるお

f:id:pnsk:20130819180142p:plain