読者です 読者をやめる 読者になる 読者になる

IT Notebook

ITについての備忘録的なブログです

git - 「git archive」ソースをアーカイブする方法

gitに格納したあるソースのみを取得した時のメモ

環境

git clone

特定のブランチのソースを取得したかったので、ブランチ指定でクローン

git clone -b <Branch> <Repository>

git archive

リポジトリに移動してアーカイブコマンド実行

cd <Branch>
git archive HEAD --format=tar.gz > branch.tar.gz

Apache - Apache2.4でエラー「Unknown Authn provider: ldap」が出たときの対応手順

Apache2.4でOpenLdapと連携させる時に以下のエラーがでて結構苦労したのでメモ

環境

エラーメッセージ

AH00526: Syntax error on line 8 of /etc/apache2/mods-enabled/FILENAME:
Unknown Authn provider: ldap
Action 'configtest' failed.

対応手順

sudo a2enmod ldap
sudo a2enmod authnz_ldap

Subversion - Subversion1.8.8 + Apache2.4.7 + OpenLDAP連携した環境構築

SubversionAWS上に構築した時のメモ 今更ながらですが...

環境

手順

1.パッケージインストール
sudo apt-get update
sudo apt-get install subversion subversion-tools libapache2-svn apache2-utils apache2 libapache2-modsecurity
2.Apache設定変更
cat /etc/apache2/mods-available/dav_svn.conf
<Location /svn>
  # Subversion設定
  DAV svn
  SVNParentPath /svn
  # LDAP認証
  AuthType Basic
  AuthName "Subversion Repository"
  AuthBasicProvider ldap
  AuthLDAPUrl "ldap://ldap.example.com:389/ou=user,dc=example,dc=com"
  AuthLDAPBindDN  cn=admin,dc=example,dc=com
  AuthLDAPBindPassword Password
  Require valid-user
  LDAPReferrals Off
</Location>
3.Subversionリポジトリ用ディレクトリ作成
chown -R /svn
4.Subversionモジュール有効
sudo a2enmod dav_svn
5.LDAPモジュール有効
sudo a2enmod ldap
sudo a2enmod authnz_ldap
6.AH00558エラー対応

http://mk-55.hatenablog.com/entry/2014/07/07/004510

sudo echo ServerName $HOSTNAME > /etc/apache2/conf-available/fqdn.conf
sudo a2enconf fqdn
sudo service apache2 restart

GitLab - GitLab7.4.3から7.14.3へのアップグレード

GitLab7.4.3のslack連携がうまくできなかったので GitLab7の最新版である7.14.3へアップグレードした時のメモ

環境

手順

1.アップグレードするパッケージの確認

この確認方法ですがを探すの結構苦労しました ここでは「7.14.3-ce1 ubuntu/trusty」を探す方法となります

2.各プロセス停止

アップグレード前にプロセスを停止

sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-ctl stop nginx
3.バックアップ取得

構成変更の場合は必ずバックアップ 今回はAWSを使用しているのでAMIを作成

4.アップグレード

curlリポジトリのキャッシュを最新にするところまでやってくれる アップグレードコマンドは「0% [Working]」のステータスで結構止まっていたが しばらくそのままにすると更新が始まって無事終了

curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce=7.14.3-ce.1
5.Config再設定

設定がデフォルトになっていたりDB定義更新をする必要がある場合もあるので再設定

sudo gitlab-ctl reconfigure
6.サーバ再起動

プロセス再起動でも問題ないのですが、自動起動されるか確認したかったのでサーバ再起動

sudo init 6

自動起動してこれで完了 新しいパラメータも幾つか追加されているようなので適宜変更

sudo vi /etc/gitlab/gitlab.rb
sudo gitlab-ctl reconfigure

参考

piculet - piculetを使ってみてはまったところ

Security Groupを別のAWSアカウントに移行する時に、piculetを使用した時のメモ ruby2.0以上が必須など、インストールなどに戸惑ったので念のため

環境

インストール

ruby2.0以上が必要なので事前にrubyをインストール
sudo add-apt-repository -y ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install ruby2.1 ruby2.1-dev
piculetインストール
gem install piculet --no-ri --no-rdoc

移行元からSecurity Groupをエクスポート

credentials設定
vi ~/.aws/credentials
------------------------------------------------------------
[default]
aws_access_key_id=<移行元のアクセスキー>
aws_secret_access_key=<移行元のシークレットキー>
------------------------------------------------------------
Security Groupエクスポート
piculet -e -r ap-northeast-1 -n <SecurityGroup> > Groupfile
  • 複数登録されているSecurity Groupのうちの1つのみを移行するため「-n」オプション使用して明示的に指定

Security Groupをインポート

credentials設定
vi ~/.aws/credentials
------------------------------------------------------------
[defaults]
aws_access_key_id=<移行先のアクセスキー>
aws_secret_access_key=<移行先のシークレットキー>
------------------------------------------------------------
piculetのインポートコマンドをdry-run
piculet -a -r ap-northeast-1 -n <SecurityGroup> --dry-run
  • 想定どおりの結果になるか確認
  • Security Groupを明示的に指定しないと、完全同期しようとするので要注意!!
piculetのインポート
piculet -a -r ap-northeast-1 -n <SecurityGroup>

※参考

roadworker - roadworkerを使ってみてはまったところ

Route53に登録してあるドメインを別のAWSアカウントに移行する時に、roadworkerを使用した時のメモ ruby2.0以上が必須など、インストールなどに戸惑ったので念のため

環境

インストール

ruby2.0以上が必要なので事前にrubyをインストール
sudo add-apt-repository -y ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install ruby2.1 ruby2.1-dev libpcap-dev
roadworkerインストール
gem install roadworker --no-ri --no-rdoc

移行元からDNSレコードをエクスポート

credentials設定
vi ~/.aws/credentials
------------------------------------------------------------
[default]
aws_access_key_id=<移行元のアクセスキー>
aws_secret_access_key=<移行元のシークレットキー>
------------------------------------------------------------
DNSエクスポート
roadwork -e -o Routefile --split
  • 複数登録されているDomainのうちの1つのみを移行するため「--split」オプション使用

DNSレコードをインポート

credentials設定
vi ~/.aws/credentials
------------------------------------------------------------
[defaults]
aws_access_key_id=<移行先のアクセスキー>
aws_secret_access_key=<移行先のシークレットキー>
------------------------------------------------------------
roadworkerのインポートコマンドをdry-run
roadwork -a -f Routefile --dry-run
  • 想定どおりの結果になるか確認
roadworkerのインポート
roadwork -a -f Routefile

※参考

OpenLDAP - 「bdb_equality_candidates」エラーの対応方法

環境

出力ログ

Jan  6 01:47:06 localhost slapd[28974]: <= bdb_equality_candidates: (uid) not indexed

原因

  • インデックスが見つからないため

対応

  • インデックス作成

対応手順

1.OpenLdapサービス停止
service slapd stop
2.ConfigDBを編集
vi /etc/ldap/slapd.d/cn=config/olcDatabase={1}bdb.ldif
------------------------------------------------------------
+ olcDbIndex: uid eq
+ olcDbIndex: member eq
+ olcDbIndex: uniqueMember eq
+ olcDbIndex: memberUid eq
------------------------------------------------------------
3.インデックス作成
slapindex -F /etc/ldap/slapd.d/
4.ディレクトリ権限変更
chown -R openldap:openldap /etc/ldap/slapd.d/
5.OpenLdapサービス起動
service slapd start