うぇぶにあると都合のいいもの

ぼくが、どこからでもアクセスできると便利な情報を書いてます。

CentOS7の設定

昨年末にインストールしてたシステムに問題があって、調査しに行ったところ、インストール作業に問題があるのが判明。弊社じゃないけど、うちで修正しないといけなくなった。 やることは、PostgresqlとElasticSearchのデータディレクトリの変更

RedHatの7であまり触ったことないので、一応CentOS7で構築から確認してみた。

環境はWindows10のHyper-V上に、CentOS7,5を構築

CentOS7をインストール

ISOファイルをダウンロードして、 Hyper-Vのゲストマシンに設置。画面に従うだけ。

Linux Integration Services 4.2 for Hyper-Vのインストール

Download Linux Integration Services v4.2 for Hyper-V and Azure from Official Microsoft Download Center から、ダウンロード

NICの設定

nicの確認

nmcli d

インターフェイスを有効化

nmcli c m eth0 connection.autoconnect yes

IPアドレスサブネットマスクを変更*1

nmcli c modify eth0 ipv4.addresses 192.168.xxx.xxx/24

デフォルトゲートウェイを設定

nmcli c modify eth0 ipv4.gateway 192.168.xxx.xxx

DNS設定

nmcli c modify eth0 ipv4.dns 192.168.xxx.1

IPを固定割り当てに設定 (DHCP は "auto"に変更)

nmcli c modify eth0 ipv4.method manual

インターフェースを再起動して設定を反映

nmcli c down eth0; nmcli c up eth0;

sshdの設定

インストール状態確認

yum list installed | grep ssh

インストールされてないなら入れる。

yum -y install openssh-server

設定ファイルの変更

nano/etc/ssh/sshd_config

設定項目

PermitRootLogin  #rootユーザーでのログインを許可するか否か。
PasswordAuthentication #パスワード認証を許可するか否か。

サービス再起動

systemctl start sshd.service #起動 
systemctl status sshd.service #動作確認 

ファイアウォールの設定

ポートの確認

firewall-cmd --list-all

ないなら追加

firewall-cmd --permanent --add-service=ssh

データ領域用HDDの追加とマウント

Hyper-Vでディスク作って追加。 バイス確認

fdisk -l 

パーテーション作成

fdisk/dev/sdb

ファイルシステムを作成

mkfs-t ext4 /dev/sdb1

マウントする

mount -t  ext4 -o defaults /dev/sdb1 /data/

起動時の、自動マウント

nano /etc/sftab

/dev/sdb1 /data/ ext4 defaults 0 0 

を追記

ElasticSearc インストール準備

wgetのインストール

yum -y install wget

で終了。で、ElasticSearchのrpmを取ってくる。 バージョンは、導入先の都合で、5.6.3

Elasticserachユーザのファイルオープン数の設定

これこれ変えとかないとあとあと、エラーが出る。まず現状確認。

sudo -u elasticsearch bash -c "ulimit -n“

たぶん、初期値1024。65536に変更する。

nano /etc/security/limits.conf

この記述を変更

elasticsearch - nofile 65536

JAVA(OpenJDK)のインストール

yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel 

javaフォルダの確認

dirname $(readlink $(readlink $(which java)))
/usr/lib/jvm/java-1.8.0-openjdk01.8.0.171-8.b10.el7_5.x86_64/jre/bin

nano /etc/profile に追加

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

ここからが、やるところ

ElasticSearchデータディレクトリの変更

ElasticSearchのデータディレクトリの変更しないといけない。

デフォルトは/var/lib/elasticsearch/

配下を、すべて移行先にコピー

cp -a /var/lib/elasticsarch/ /data/elasticsearch/

chown –R で所有者、所有グループを変更。

chown -R elasticsearch:elasticsearch elasticsearch/

サービス起動の設定ファイルを変更。

nano /etc/sysconfig/elasticsearch

ここの記述を変更する。

DATA_DIR=%移行先%

systemctl restart elasticsearch.service でプロセス再起動。

ps aux | grep elastic で動作確認

PostgreSql データ領域の移動

ここを参考にした。

手順1 /usr/lib/systemd/system/postgresql-9.5.service 内の "Environment=PGDATA="を変更する

手順2(参照の記述がなかったので、作業せず。) .bash_profileにある、PGDATA= を変更後、source .bash_profileで反映する

手順3 systemctl daemon-reloadを実行する ※これをしないと、警告が出た Warning: postgresql-9.5.service changed on disk. Run 'systemctl daemon-reload' to reload units. でも、なんかうまくいかなくて、リブートした。

手順4

/usr/pgsql-9.5/bin/postgresql95-setup initdb

を実行する

手順5

systemctl start postgresql-9.5.service

を実行する

データ領域移動後の作業
  • pg_hba.confはコピーでOK
  • postgresql.confは修正。
  • dbは要リストア
  • postgresユーザのパスワード再設定は不要。

*1:バイスを確認して「eth0」を変更する