web-technical-blog

web開発に関する技術メモ

JenkinsにSSH pluginを設定

1.インストー

「Jenkinsの管理」→「プラグインの管理」→「利用可能」で「SSH plugin」を検索してインストールの後再起動

2.設定

「Jenkinsの管理」→「システムの設定」で
SSHリモートホスト」が出現しているので、「追加」押下
ホスト名、ポート、ユーザ名、パスワード/パスフレーズを設定する

3.ジョブ作る

普通にジョブを作る
「新規ジョブ作成」→「フリースタイル・プロジェクトのビルド」→「設定」で「ビルド」→「ビルド手順」押下すると「リモートホストでシェルを実行」という項目が増えている。
これを追加して以下のように設定。

SSHサイト・・・手順2で設定したSSHの接続情報を選択
シェルスクリプト・・・SSH接続後実行して欲しいシェルを記述

これでSSHで接続した後コマンドを実行してくれるようなジョブができます。

▼参考URL
JenkinsのSSH pluginflyingpillow.wordpress.com

CenOS7にSubversionをインストールする方法

# 事前準備(重要)
SELinuxを無効にしておくこと
selinuxが有効な場合リポジトリにコミットしようとした場合に、
パーミッションエラーとなりコミットに失敗することがあります。

# パッケージのインストール
yum -y install httpd subversion mod_dav_svn

# svnリポジトリ設置場所を作成
mkdir /var/www/svn

# リポジトリ作成
svnadmin create /var/www/svn/sample

# ディレクトリ作成
svn mkdir file:///var/www/svn/sample/trunk file:///var/www/svn/sample/tags file:///var/www/svn/sample/branches -m 'Initial import.'

# 編集権限を設定
chown -R apache:apache /var/www/svn

# Basic認証ファイルの作成
htpasswd -c /etc/httpd/.htpasswd mario
New password:mario
Re-type new password:mario
Adding password for user mario

# Subversion設定ファイルの編集
vi /etc/httpd/conf.d/subversion.conf
<Location /repos>
 DAV svn
 SVNParentPath /var/www/svn
# <LimitExcept GET PROPFIND OPTIONS REPORT>
#  SSLRequireSSL
   AuthType Basic
   AuthName "Authorization"
   AuthUserFile /etc/httpd/.htpasswd
   Require valid-user
# </LimitExcept>
</Location>

# 自動起動
systemctl enable httpd.service

# HTTPアクセスを可能にする
firewall-cmd --permanent --add-service=http

# HTTP再起動
systemctl restart httpd.service

# firewalld再起動
systemctl restart firewalld.service

# 動作確認
http://{servername}/repos/sample/

▼参考URL
Subversion環境をCentOSで構築 - 無理なものは無理
CentOS7にsvnサーバをインストールする (apache編) – CentOS
CentOSにSubversionを入れてみる - yk5656 diary
5.4. SELinux の有効化および無効化
[CentOS7][SVN]サーバ構築 - Qiita

virtualboxにCentOS6をインストール

■ホストオンリーアダプターを設定しておく

設定 → 一般 → ネットワーク(アダプター2) → 割り当て(ホストオンリーアダプター)

■OSの起動時にネットワークの接続が自動で行われるようにする

# vi /etc/sysconfig/network-scripts/ifcfg-eth1
ONBOOT=no
↓変更
ONBOOT=yes

IPADDR=192.168.56.110
PEERDNS=24

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=no
↓変更
ONBOOT=yes

# ネットワークの設定を有効化
# service network restart

DNS 名前解決できないエラーの解決のために理解しておくべきポイント

仮想マシンのアダプターを理解すること
 NAT: ゲストOSとインターネットなどホストOSの外と通信するのに必要
 ホストオンリーアダプター: ゲストOSとホストOSとの間で通信するのに必要

ゲストOS → virtualbox
ホストOS → PC自体

・アダプターとゲストOS
/etc/sysconfig/network-scripts/ifcfg-eth0 = NAT
/etc/sysconfig/network-scripts/ifcfg-eth1 = ホストオンリーアダプター

・ifcfg-eth0 や ifcfg-eth1 の ONBOOT=yes にしておくと、
 networkをstartしたときにそれぞれを起動できる。noの場合だと起動しないためアダプターは使えない。

▼参考URL
CentOS6.7 64bitをインストール | kakiro-web カキローウェブ
http://oki2a24.com/2015/05/27/resolve-dns-error-of-centos-6-in-virtualbox/

CentOS7にOpenAMをインストールする方法

■推奨環境
OpenAMをインストールサーバー環境の推奨環境は以下の通り。
・サーバーOS:Linux, Windows, UNIX
・メモリ:2GB 以上(JVM ヒープサイズ)
JDK:1.6 以上
・アプリケーションコンテナ(例.Apache Tomcat, JBoss, …etc)

■事前準備
ホスト名:sso1.example.com
IPアドレス:192.168.56.100

・ホスト名の確認
OpenAMサーバーのホスト名が上記FQDNであるかどうかを確認し、必要であれば変更する

# vi /etc/sysconfig/network
HOSTNAME=sso1.example.com

・hostsファイルの編集
OpenAMサーバーのローカルhostsファイルを編集する

# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 sso1.example.com
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

ファイアウォールSELinux の無効化
SELinuxの無効化

[root@localhost ~]# getenforce
Enforcing

[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive

システム起動時にSELinuxを無効化

# vi /etc/sysconfig/selinux
SELINUX=enforcing
↓
SELINUX=disabled

■ファイルウォール停止

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld

■OSの時刻同期
OSの時刻同期設定をしておく事を推奨します。
時刻同期は今後 OpenAM にて SAML 構成を行う場合に必須になります。

■OpenAMサーバーの再起動

[root@localhost ~]# shutdown -r now

JDKインストー
OpenAMがデプロイされるApache Tomcatを起動するためにJavaをインストールする

[root@localhost ~]# yum -y install java-1.7.0-openjdk
Javaのバージョン情報が正しく表示されているか確認する
[root@localhost ~]# java -version
java version "1.7.0_121"

▼tomcat7のインストー
http://dotnsf.blog.jp/archives/1048567603.html

■CentOS7の場合はTomcat7が標準でインストールされるみたい

[root@localhost sysconfig]# yum info tomcat
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
利用可能なパッケージ
名前 : tomcat
アーキテクチャー : noarch
バージョン : 7.0.69

■CentOS6の場合はTomcat7をインストールするには事前にEPELリポジトリの登録が必要

[root@localhost ~]# rpm -Uvh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@localhost ~]# rpm -qa | grep epel
epel-release-6-8.noarch

■tomcat7のインストー

[root@localhost ~]# yum install tomcat

■URL文字化け対策

# vi /etc/tomcat6/server.xml
(Connectorタグに下記内容を追加)
<Connector port="8080" protocol="HTTP/1.1"
…(設定略)
URIEncoding="UTF-8" />

JVMヒープサイズの変更
Apache TomcatJVMヒープ際すを確保

# vi /etc/sysconfig/tomcat
JAVA_OPTS="-server -Xmx2048m -XX:MaxPermSize=256m"

■ダウンロードしたOpenAMファイルをApache Tomcatのデプロイ用ディレクトリ配下にファイル名を"openam.war"として配置する。

[root@localhost ~]# cp -p OpenAM-13.0.0.war /var/lib/tomcat/webapps/openam.war

# tomcatの起動と自動起動の登録
[root@localhost tomcat]# systemctl start tomcat
[root@localhost tomcat]# systemctl enable tomcat

Apache Tomcat の起動が成功すると、Apache Tomcat の/var/log/tomcat6/catalina.out
ログに下記行のようなログが出力されます。

### 以下のログが出力されればOK ###
12 13, 2016 7:22:19 午後 org.apache.catalina.startup.Catalina start
情報: Server startup in 49703 ms

■pc(windows)のhostsを設定する

# --- openam
192.168.56.100 sso1.example.com
http://sso1.example.com:8080/openam

▼参考URL
http://www.osstech.co.jp/download/updates/docs/openam/OSTD-OpenAM11-InstallGuide.pdf
CentOS7の時刻をChronyを使ってNICTと同期する - Qiita
CentOS 7でTomcat 7 - ろば電子が詰まっている

WindowsにVagrantを入れたときの設定手順メモ

Windows上で、Git-bashを使います。その他のクライアントソフトでもOKです。
https://git-scm.com/downloads

VirtualBoxインストー
OSに合ったVirtualBoxをダウンロードしてインストー
https://www.virtualbox.org/wiki/Downloads

Vagrantのインストー
OSに合ったVagrantをダウンロードしてインストー
https://www.vagrantup.com/downloads.html

$ vagrant box add {title} {url}
$ vagrant init {title}
$ vagrant up

VirtualBoxにboxファイルを登録する

$ vagrant box add centos6-7 https://github.com/CommanderK5/packer-centos-template/releases/download/0.6.7/vagrant-centos-6.7.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos6-7' (v0) for provider:
box: Downloading: https://github.com/CommanderK5/packer-centos-template/releases/download/0.6.7/vagrant-centos-6.7.box
box:
==> box: Successfully added box 'centos6-7' (v0) for 'virtualbox'!

▼他のOSの場合は、下記から選択する
http://www.vagrantbox.es/

■boxのダウンロードが終わったら、下記コマンドで利用可能なbox一覧を表示

$ vagrant box list
centos6-7 (virtualbox, 0)

■Vagrantfileの作成

$ vagrant init centos6-7

A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

$ vi Vagrantfile
# VMのホスト名
config.vm.hostname = "centos6-7"
# VMのIPアドレスを設定
config.vm.network "private_network", ip: "192.168.33.10"
# GUIモードの設定をONにする場合は設定(不要ならコメントアウトのままでOK)
config.vm.provider "virtualbox" do |vb|
# Display the VirtualBox GUI when booting the machine
vb.gui = true
vb.name="192.168.33.10"
end

VM起動

$ vagrant up
初期パスワード user:vagrant, password:vagrant
sudo su - でrootになれる。

SSHで接続する場合
vargrant upで起動した後で、
Vagrantfileがあるディレクトリで、下記コマンドで接続することも可能

$ vagrant ssh

Teratermなど、他のクライアントソフトで接続する場合は、
Vagrantfileのconfig.vm.networkで設定したIPアドレスで接続できる。

$ ssh -lvagrant 192.168.33.10

# エラーが発生する場合は、鍵を作成する
ssh-keygen -R 192.168.33.10

# 192.168.33.10
vi ~.ssh/authorized_keys/id_rsa.pub
xxxxxxxxxxxxxxxxxx
xxxxxxxxxxx
xxxxxxxxx

■フォルダ共有
CentOSの特定ディレクトリをWindowsと共有することができる

■共有フォルダの指定

$ vi Vagrantfile
# config.vm.synced_folder "../data", "/vagrant_data"
  config.vm.synced_folder "../hello", "/var/www/html/hello"

■ソースフォルダ・ファイルの作成

C:¥Users¥xxxx¥hello¥index.html
<h1>Hello Vagrant!</h1>

■設定の再読み込み

vagrant reload

■フォル共有の確認

[vagrant@localhost hello]$ ls -l /var/www/html/hello/
total 1
-rwxrwxrwx 1 vagrant vagrant 23 Dec 14 07:45 index.html

■Webサーバーの起動
CentOSにログインし、httpd(Apache)をインストール、起動する。

[vagrant@vagrant-centos65 ~]$ sudo yum -y install httpd
[vagrant@vagrant-centos65 ~]$ sudo chkconfig httpd on
[vagrant@vagrant-centos65 ~]$ sudo service httpd start

■コマンドメモ

vagrant box add [box名] [boxファイル]: ローカルにボックスファイルをダウンロードする
vagrant box list: box一覧確認
vagrant box remove [box名]
vagrant init box名: Vagrantfileの作成
vagrant up: VagrantfileからVMを起動する
vagrant status: 起動しているVM一覧確認
vagrant halt: VM停止
vagrant destroy: VM削除(Vagrantfileのあるディレクトリで行う)
vagrant ssh: 簡単にSSHログイン出来る

■VagrantFileのサンプル

Vagrant.configure("2") do |config|
    config.vm.box = "bento/centos-6.8"
    config.vm.hostname = "192.168.56.200"
    config.ssh.insert_key = false
    config.vm.network "private_network", ip: "192.168.56.200"
    config.vm.provider "virtualbox" do |vb|
    vb.name = "hostname"
    vb.memory = "2048"
    vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    vb.customize ["modifyvm", :id, "--cableconnected1", "on"]
    vb.customize ["setextradata", :id, "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled", 0]
end

config.vm.provision "shell", inline: <<-SHELL

yum update -y
yum install -y zsh vim tree telnet dstat git tig

SHELL

end

▼参考URL
qiita.com

firewalldがデフォルトでインストールされているisoファイル

centos7系をインストールしていると、
firewalldがインストールされていないisoファイルがあった。。

■firewalldがデフォルトでインストールされている
CentOS-7-x86_64-Minimal-1611.iso

■firewalldがデフォルトでインストールされていない
CentOS-7-x86_64-Minimal-1511.iso

firewalldがインストールされていない場合は、以下のコマンドを実行してfirewalldのインストールを行う
# yum install firewalld

▼参考URL
CentOS7.1 64bit firewalldによるアクセス制御 | kakiro-web カキローウェブ