2014年11月27日木曜日

チケット管理ツール、Gitクライアントなどmemo

チケット管理ツール
・Redmain
・Trac
・JIRA
・Rivotal Tracker
・Backlog
 30日間無料
・Visutal Studio TFS
 5人まで無料

Gitクライアント
・Git Gui
・SourceTree
・Eclipse Egit

Git + アルファ
・Jenkines

trac,svn,mysqlのバックアップ->リストア

svnのバックアップ
svnadmin dump [プロジェクトまでのパス]/[プロジェクト名] > [バックアップファイル名]
svnadmin hotcopy [プロジェクトまでのパス] [バックアップまでのパス]
のほうが良いかも。

svnのリストア
以下の本家サイトの通りにsvnリポジトリを作成する。
http://trac.edgewall.org/wiki/Ubuntu-11.04-Subversion

以下のコマンドを実行する。
svnadmin load [リポジトリまでのパス]/[リポジトリ名] < [バックアップファイルまでのパス]/[バックアップファイル名]

mysqlのバックアップ
以下のコマンドでバックアップを実行するにはホームディレクトリなどで実行すること。
でないとpermission deniedエラーが発生する。
mysqldump -u [ユーザ名] -p [プロジェクト名] > dump.sql(バックアップファイル名)

全てのデータベースのバックアップを取りたい場合には以下のコマンドを実行する。
mysqldump -u [ユーザ名] -p -x --all-databases > dump.sql

mysqlのリストア
データベースを本家サイトの通りに作成する。

作成したらリストアを実行する。
特定のデータベースをリストアするには以下実行。
mysql -u [ユーザ名] -p [データベース名] < [バックアップファイル名]

バックアップデータのすべてのデータバースをリストアするには以下実行。
mysql -u [ユーザ名] -p < [バックアップファイル名]

tracのバックアップ
trac-admin [プロジェクトまでのパス]/[プロジェクト名] hotcopy [バックアップ先のパス]

tracのリストア
sudo cp -Rf [バックアップファイルまでのパス]/[バックアップファイル名] [tracリポジトリまでのパス]/[プロジェクト名]

tracとリポジトリの同期
以下のような感じ
trac-admin /var/lib/trac/SampleProject/ repository resync "*"
sudo /etc/init.d/apache2 restart

以上実行し、ブラウザ確認したら以下のエラーが出ていた。
The Trac Ecvironment needs to be upgraded.
SQLihgtを使用していない場合には、以下のオプションを指定してupgradeする必要がある。
--no-backup

Upgradeコマンド実行。
trac-admin /var/lib/trac/SampleProject/ upgrade --no-bakup

上から順に実行するとうまくいった。

バックアップファイルの移動方法
バックアップファイルを他のホストサーバに移動するには、sftpコマンドとか使用する。

sftpコマンド

sftpコマンド使用法
sftpでヘルプが見れる
sftp -P [ポート番号] [ユーザー名]@[ホストサーバー名]
でsftp操作開始

ホスト用コマンド
ls
cd
get :ファイル転送用コマンド ホスト->クライアント
mget :複数ファイル転送用コマンド

クライアント用コマンド
lls
lcd
put :ファイル転送用コマンド クライアント->ホスト
mput :複数ファイル転送用コマンド

exit :sftp終了コマンド

ディレクトリを送信したい場合には、tarファイルにアーカイブすると送れる。

2014年11月26日水曜日

Gitlab入れてみる。

Gitlab入れてみる
公式サイトのインストール手順の通りにやってみる。
https://github.com/gitlabhq/gitlabhq/blob/be39106af73cc89098c290574da2be1488e76a7e/doc/install/installation.md



2014年11月25日火曜日

こまごま

cygwin
ネットワーク内のパスの指定方法
cd //ubuntu/var/lib/trac
など

mysql

mysqlのコマンド
ログイン
mysql -u root -p

ユーザの確認
sekect host,user,password from mysql.user;

パスワードの変更
set password for ユーザ名@"ホスト名"=password('パスワード');

設定されている権限の確認
show grants for 'user'@'localhost';

2014年11月20日木曜日

ubuntu14.10でGit

仮想サーバー(ubuntu14.10)でGitを使ってみる。

Git用のユーザーとグループ作成
sudo groupadd git
sudo adduser -g git git
(useraddしたらフォルダが作成されなくて以下のコマンドでエラーが出た)

とりあえずgitユーザを追加して、みんなgitさんとしてプッシュするという風になったが、
ユーザ数だけサーバーに登録して、下記のユーザー登録を行えば、
コミットログにユーザー名が記録されるので、機能を制限してユーザー登録したほうがいい。

Gitインストール
ubuntuだと以下でインストールできる。

sudo apt-get install git

ユーザー登録
ユーザー登録を行う。公開リポジトリの場合、メールアドレスとか公開されちゃうので注意。

git config --global user.name "username"
git config --global user.mail mail@hoge.com

設定の確認は
git config --global -l

変更したい場合は同じコマンドを使用して上書きする。

Gitリポジトリ作成
任意の場所にディレクトリを作成してgit initする。
これでリポジトリは作成完了。
後はEclipseからssh接続してclone,commit,pushする。

Gitリポジトリの所有権を変更する
Gitリポジトリの所有権がrootだった場合には、gitグループを作成して、所有権を変更する。


クライアント(Eclipse)接続するのに必要なsshの設定
安全の為に鍵認証を行う。
GitではSSHの公開鍵認証を使用しているので、それに倣う。
クライアントPCからCygwin起動して鍵を生成する。
ホストから作成してもOK。

ssh-keygen

生成場所はデフォルト、passheraseを設定すると、パスワードを聞かれるようになる。
鍵をscpコマンドでサーバーに送る。

scp -P [ポート番号] /home/user/.ssh/id_rsa.pub user@server-name

サーバーにリモートアクセスして、以下実行。

mkdir ~/.ssh
chmod 700 ~/.ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub
chmod 600 ~/authorized_keys

/etc/ssh/sshd_configの以下の行のコメントを外し、authorized_keysを有効にする。

#AuthorizedKeysFile %h/.ssh/athorized_keys

クライアント側からアクセスして確認。

ssh -p [ポート番号] user@server-name

アクセスできたらsshd_configの以下の行を編集し、ルートでのログイン無効、パスワード認証を無効にする。
PermitRootLogin yes -> noに変更する。
#Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes <- ここをコメントを外し、noにする。

複数の鍵を管理する方法(Cygwin)
~/.bashrcに以下を追加して、configファイルを見るようにする。
初期設定のままだと、configファイルは見ないようになっている。

#.ssh/configの読込
alias ssh='ssh -F ~/.ssh/config
alias scp='scp -F ~/.ssh/config

~/.ssh/configファイルを作成する。
vi ~/.ssh/config
内容は簡単に以下。

IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_rsa.softserver2

という感じ。


Eclipseでサーバーのリポジトリを取り込む(cloneする)
eclipse->window->preferences->general->network connection->ssh2->generalのssh2 homeに、
先ほど作成した鍵のディレクトリを指定する。
Git Repositoriesの右上のアイコンからリポジトリのクローンを選択して、該当リポジトリをクローンする。
urlは以下のように指定する。

ssh://user@hostname:port/リポジトリの.gitがある場所をフルパス指定

取り込んだリポジトリをインポートする
Git Repositrories画面にクローンしてきたリポジトリの先頭で右クリック->Import Projects
でProject Explorerに該当のプロジェクトがインポート(svnでいうところのチェックアウト)される。

.gitignoreを追加する
最初は.gitignoreファイルはないので、新規作成する。
内容は以下のように設定する。svnのignoreと同じ感じ。

.project
*.~

変更をcommitする
右クリック->Syncronize Workspaceでローカルリポジトリの差分を確認する。
変更に間違いがなければ右クリック->commit

pull
自分のローカルリポジトリをサーバーの最新状態に更新すること。

clone,commitはできるけどpushできない
やってみたこと
サーバー設定で、
git config --get-all core.bare
>false <-falseだったら以下実行

config --bool core.bare true
確認
git config --get-all core.bare
>true <-成功

原因は。。
以下のエラーが出てpushできなかったのだが、
Can't connect to any repository: ssh://inouey@ubuntu-ino:53/var/lib/git/TestGit (Nothing to push.)
これはpushするのはどれなのか指定していなかったせいで出ていたエラーのようだ。

Push Ref Specifications画面で、Source refの選択をして、その右の+Add Specボタンを押す。するとSpecifications for push 画面にpush する候補が表示されるので、選択するとpushできた。

2014年11月18日火曜日

tracの作成、設定、ブラウザ表示まで

mysqlについて
使ったコマンドは以下。
>show databases;
>select host, user, password from mysql.user;
>drop database [データベース];
>drop user '[user]'@'[host]';

/etc/apache2 の設定
①/etc/apache2/httpd.conf, ②/etc/apache2/sites-available, ③/etc/apache2/port.confの設定、変更でブラウザが表示された。

①、②
昔の設定だと、httpd.confに全ての設定を書いていたが、
ubuntu14.10
apache/2.2.22
だと、.confファイルに細かく設定が分けられている。
UbuntuでのApache設定はDebianを受け継いでいて、各種設定はapache2.conf(httpd.conf)ではなく、それぞれの.confファイルで管理するらしい。
httpd.confから分けたのは以下。
ポート設定:port.conf
サイト設定:sites-availableフォルダにファイル作成
他に設定がある場合には、conf-availableに作成して、conf-enabledで有効にする。

sites-avalableには参考のdefault.confがある。
今回は、前に設定したhttpd.confの内容をコピーして、trac.confを作成した。
内容は以下。ダイジェスト認証で、複数リポジトリ管理する設定。

<Location /trac>
  SetHandler mod_python
  PythonHandler trac.web.modpython_frontend
  PythonOption TracUriRoot "/trac"
  PythonOption TracEnvParentDir /var/lib/trac
</Location>

<LocationMatch "/trac/[^/]+/login">
        LoadModule auth_digest_module /usr/lib/apache2/modules/mod_auth_digest.so
        AuthType digest
        AuthName passwd
        AuthUserFile /var/lib/trac/.htdigest
        Require valid-user
</LocationMatch>


port.confの内容は以下。
初期設定から8080ポート開けるようにし、NameVirtualHostをコメントアウトした。
a2ensiteコマンドを実行したら、AH00548エラーが出たので、NamevirtualHostをコメントアウトした。

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
#NameVirtualHost *:80
Listen 8080

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

以上の設定をしたら、
現在のサイトを無効化して(sites-enabledにある.confファイル)、②で作成したサイトを有効にする。

a2dissite 000-default.conf
a2ensite trac.conf

[参考]
http://d.hatena.ne.jp/uriyuri/20081112/1226497108

tracブラウザロゴ表示の変更
今回の場合/var/lib/trac/SampleProject/conf/trac.iniを編集する

 [header_logo]
  alt = ...
  height = ...
  link = ...
  src = trac_banner.png ←この部分をこう修正
  width = ...

svnauths編集
初期設定のままだと読むことしかできず、コミットしようとすると権限ないよ、エラーだよ。と言われるので、変更する。
以下のような感じに。

[groups]
 admin = usr01
 [/]
 * = 
 @admin = rw
 [SampleProject:/]
 * = 
 @admin = rw

2014年11月17日月曜日

ブラウザで作成したsvnのSampleProjectが見れない

解決策:/etc/apache2/mods-enabledを変更する。

/var/log/apache2/error.logを確認すると、以下のようなエラーログが出ていた。

AH01796: AuthType Digest configured without corresponding module

ダイジェスト認証がうまくいっていない、ということなので、etc/apache2/mods_enableを確認したところ、auth_basic.loadが有効かされていた。
以下のように、auth_basicを無効化して、auth_digestを有効かしたところ、ブラウザで表示できるようになった。

sudo a2dismod auth_basic (無効化)
sudo a2enmod auth_digest (有効化)
sudo service apache2 restart (apache2再起動)

2014年11月14日金曜日

細かい設定(だがしないと動かないかも)

mysqlのパスワード設定
mysqlはパスワードの設定なしでインストール可能。
phpmyadminとかインストールしてもパスワードなしではログインできないのでパスワードの設定が必要。
phpmyadminの再設定コマンドか、mysqlからパスワード設定する。
・phpmyadmin再設定
 sudo dpkg-reconfigure phpmyadmin
  で流れに沿って。
・mysqlから設定
 mysql -u root -p
  でパスワードなしでログインして、
  set password for root@localhost=password('パスワード');
  で設定完了。

データベースの削除コマンド
drop database [削除したいデータバース名];


2014年11月13日木曜日

ssh接続後の諸設定~バージョン管理(svn)開始まで

phpの確認
/var/www/htmlにphpinfo.phpを作成して以下のように記述する。

<?php
phpinfo
?>

ブラウザでhtml://サーバーアドレス/phpinfo.phpを確認。
phpに関する情報が表示されたらOK。
もし書いてある内容がそのまま表示されてしまった場合、設定を見直す。

sambaのインストール~設定
1. インストールする

  http://ubsv12045vm/phpmyadmin
2. 設定
 2.1. セキュリティ
  共有レベルとユーザレベルの設定が可能。ユーザレベルセキュリティで設定する(4種類の実装方法から選べる)。

    [GLOBAL]
    ...
    security = user
    ...

  2.2 シェアの設定
   以下のように最後に追加する。

    [share]
     comment = Ubuntu FIle Server Share
     path = /var/samba/share
     browsable = yes
     guest ok = yes
     read only = no
     create mask = 0755

viのタブサイズ変更方法
vi起動して、

:set tabstop=[タブサイズ]

自分のPCからサーバーにファイルコピーとかしたい場合
1. sftpを使う。
2. sambaを使う。
 windowsからの操作がブラウザで行えるから楽。

svn,tracインストール
sudo apt-get install subversion
sudo apt-get install trac

svnリポジトリ作成
以下の流れで作成
sudo mkdir /var/lib/svn
sudo mkdir /var/lib/svn/SampleProject
sudo svnadmin create /var/lib/svn/SampleProject
sudo chown -R www-data /var/lib/svn/SampleProject
sudo svnserve -d

2014年11月12日水曜日

VMwarePlayerでubuntu14.10にssh接続する

ユーザからssh接続しようとしたら接続できなかった。
・sshdがインストールされていなかったのでインストールする。

sudo sptitude install ssh

/etc/ssh/sshd_configを編集する。
 1. ポートを変更する。
 2. rootログインできない用に以下のように設定変更する。
設定変更したら再起動する。

sudo vi /etc/ssh/sshd_config
 Port 22 ←ここを好きに変更する。
 PermitRootLogin no
sudo shutdown -r now

ssh接続
cygwinからの場合
cygwinにsshを入れる。

ssh -p [ポート番号] [ubuntuで設定したアドレス] -l [ユーザ名]

sshで接続すると色が違う
特にファイルのコメントの色が青でとても見づらい。

ubuntu lsの色設定

VMwarePlayerでubuntu14.10をインストールしたが、
lsコマンドの色設定でディレクトリが見づらいので、設定を変更する。

/usr/bin/dircolorsという実行ファイルにオプション -pをつけてdircolorsの設定ファイルを出力させる。
出力ファイルを編集して、再起動する。
dircolorsの初期設定だとOK。

1. dircolors -p > ~/.dircolors
2. sudo vi ~/.dircolors

~/.bashrcに以下の記述があるため、再起動すると上記で作成、編集した設定ファイルが適用される。

#enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
...
fi

2014年11月11日火曜日

VMwareでubuntu14.10_server

VmwarePlayerをインストールして、ubuntu14.10 serverをインストールしたときのメモ。

1. VMwarePlayerをダウンロード、インストールする。
2. ubuntuのISOをダウンロードしてくる。
 - 拡張子がtorrentなので、専用のダウンローダ?をインストールしてダウンロード完了させる。
 - torrent:ダウンロードするとアップロードもして相互扶助する仕組み。ただし、ダウンロードのみは不可。
3. VMwarePlayer(VMP)で新規作成。
 - ネットワークはブリッジにする。
 - ISOイメージの選択で、2でダウンロードしてきたものを選択する。
4. 青い三角ボタンで作成されたubuntuを再生する。
5. 流れに沿ってubuntu14.10をインストール。
 - キーボードはJapanを選択
 - 基本デフォルト
6. VMPtoolsをインストールする。
 a. sudo mkdir /mnt/cdrom
 b. sudo mount /dev/cdrom /mnt/cdrom
 c. ls /mnt/cdrom
 d. tar xzvf /mnt/cdrom/VMwareTools-x.x.x-xxx.tar.gz -C /tmp/
 e. cd /tmp/vmware-tools-distrib/
 f. sudo ./vmware-install.pl -d
 g. sudo reboot

デフォルトでインストールを進めていったところ、
LAMPserverインストールし忘れた?ので手動インストールする。
1. sudo apt-get install mysql-server
 - このときlinuxコンソールで日本語が文字化けしていてパスワード設定を促されていた気がするけど設定しないままインストールした。後で設定が必要かも。
2. sudo apt-get install apache2
3. sudo apt-get install php5

文字化け修正
 - sudo vi ~./bashrc
 でファイル末尾に以下を追加する
 case $TERM in
 linux) LANG=C ;;
 *) LANG=ja_JP.UTF-8 ;;
 esac

最初にすること
1. sudo apt-get update
2. sudo apt-get upgrade

このとき取得エラーが発生することがある。
E: Some index files failed to download, they have been ignored, or old ones used instead.
このときにはlistsを削除して再度apt-getする。

sudo rm -r /var/liv/apt/lits
sudo mkdir /var/liv/apt/lists
sudo apt-get autoclean
sudo apt-get update
sudo apt-get upgrade


hostname確認方法
 hostname
設定されている場所は以下
 /etc/hostname
 /etc/hosts
/etc/hostsは最初以下の設定になっている
 127.0.0.1 localhost
 127.0.1.1 localhost
 ...
外部(同LAN内)からリモートアクセスするにはIPを固定するのでこれを以下のように変更する。
 127.0.0.1 localhost
 !#127.0.1.1 localhost
 192.168.100.1 hostname ←設定したいIPアドレスとhostnameを設定
 ...

/etc/network/interfaces編集
以下のように変更

auto eth0
iface eth0 inet static
address 192.168.2.198
netmask 255.255.255.0
network 192.168.2.255
gateway 192.168.2.254

/etc/resovlconf/resolv.conf.d/baseの編集
インストール直後の/etc/resovl.confの内容をコピーする。
以下のコマンドを実行した後再起動して、同じ値なら問題なし。
sudo resolvconf -u
suto shutdown -r now

hostnameの設定
/etc/hostsを編集

127.0.1.1 ubuntu-ino

192.168.2.198 ubuntu-ino.mydomain ubuntu-ino