KVM:CentOS7上にKVM環境を構築する(その1)

「サーバ管理:空のPCにCentOS7をインストールする」で、OSのインストールが完了したので仮想環境を構築しました。

■ 構築したい環境

  • 仮想技術は、KVM
  • VM管理ツールは、ovirt
  • 管理ツールへのログインユーザの管理は、LDAPにまかせる

KVMとovirtの導入

以下のサイト様に従ってインストールを行いました。

qiita.com

手順通りにインストールしてから、http://IPアドレス/ovirt-engineにアクセスするとoVirtの画面が表示されました。が、ログインボタンを押すと500Errorが発生(;_;)

ログと格闘したすえ、なんとなく違うブラウザで見てみたら何事もなくログインできました。(FirefoxOperaならログイン可能)

 

現在、oVirt4.0がリリースされていますが、ログインボタンを押すと「FDQNを解決して」というErrorが画面に表示されるので、とりあえず3.5をインストールしています。

 

サーバ管理:空のPCにCentOS7をインストールする

社内の試験用VMが動作するサーバが老朽化してきたので、新しいサーバを構築してVMを乗せ換えることになりました。サーバを構築した際の備忘録をメモメモ。今回は、CentOS7インストール編です。

 

下の方に長々とやったことを書いていきますが、結論は

「NetInstall.isoをLiveusb-creatorでUSBに焼いてインストールした」です。

 

■ CentOS7インストール

サーバにDVDドライブがなかったので、USBメモリCentOSのイメージを入れてインストールすることにしました。

  •  インストールメディアの作成

CentOSのイメージをダウンロードします。

http://ftp.riken.jp/Linux/centos/7/isos/x86_64/

今回は、最小構成で良いので「Minimal.iso」をダウンロードしました。

インストールUSB作成ツール「Unetbootin」を使ってisoファイルをUSBメモリにいれました。が、サーバにUSBを指してインストールしてみると。。

dracut-initqueue[576]: Warning: /dev/root does not exist
Starting Dracut Emergency Shell...
Warning : /dev/root does not exist

こんな感じのエラーが表示されました。(インストール時のGUI画面すら表示されない...)

 

 「Liveusb-creator」でインストールメディアを作ってみたところ、CentOSのインストールGUI画面が表示されました。

CentOS7サーバー構築 【第2回】インストール用USB作成編 | tsuto.net

が、メディアに入っているはずのisoが認識されないので、GUI画面のインストールボタンが押せない。。。

 

結局、「NetInstall.iso」をダウンロードしてLiveusb-creator」でメディアを作って、インストールGUIでネットワーク設定をして、GUIからCentOSのイメージをダウンロードするという流れで、インストールを終えることができました。

centossrv.com

GUIで何を設定すればいいかは、上記のサイト様を参照しました。

 

Linux:変更された設定ファイルの確認方法

Linux上の各種設定ファイルの変更内容を確認する時に使うコマンドをφ(..〃) カキカキ

 

■ 指定日以降に変更が加えられているファイルを検索する

touch -m -d '2016/10/01 00:00:00' newer → 2016/10/01以降を検索したい場合
find . -type f -newer newer

 変更が加えられているファイルが一覧表示されます。

 

■ 設定ファイルの差異を比較する

例えば、/etc/httpd/conf/httpd.conf の差異を確認

diff -u httpd.conf.old httpd.conf | less

差異がハイライトされます。ついでに、

apachectl configtest

 httpd.conf に構文エラーが無いかどうかチェックできます。

Java:Servletスコープの利用

Servletアプリケーションでデータを共有したい場合は、Servletスコープを利用します。

 

スコープの種類等は、以下のサイト様に詳しく記載されてます。

www.javaroad.jp

Strutsで作られたアプリケーションで、applicationスコープを使ったのでメモ書き。

■ スコープにデータを登録する

 // ServletContextをDIして
@Resource
protected ServletContext application;

// メモリ上にデータを登録する
application.setAttribute("name", 登録したいデータ);

■ スコープからデータを取得する

 // ServletContextをDIして
@Resource
protected ServletContext application;

// メモリ上からデータを取得する
String name = (String)application.getAttribute("name");

 

※ 必要ならば

Tomcat起動時の初期処理でアプリケーションスコープにデフォルト値を登録する

   app.diconの末尾に初期処理のクラスを登録

<component name="initService" class="クラスのパス">
<initMethod name="初期処理メソッド名"></initMethod>
</component>

  あとは初期処理メソッドの中に、メモリへの登録処理を実装するだけです。

 

Redmine:500 Internal Server Error

Redmineリポジトリの画面を表示したら、「 500 Internal Server Error 」が表示されたと連絡がきました。その他のプロジェクトのリポジトリのページは問題なく表示される状況でした。

Redmineのログの場所

/opt/alminium/log/production.log

■ エラー内容

Started GET "/projects/***/repository" for ***** at 2016-10-03 09:54:59 +0900
Processing by RepositoriesController#show as HTML
Parameters: {"id"=>"***"}
Current user: ***

Completed 500 Internal Server Error in 821ms

ActionView::Template::Error (incompatible character encodings: UTF-8 and ASCII-8BIT):

<% end -%>
<% if !@repository.tags.nil? && @repository.tags.length > 0 -%>
<省略>

タグに日本語が含まれてるとエラーが発生するようです。

タグ名を置換することで問題なくページが表示されました。

DB:データベースを移行する

各種データベースの移行方法のリンク先を自分用にメモ。

MySQL

qiita.com

mysqldump は、ユーザに以下の権限が無いとエラーが発生します

  • SELECT
  • SHOW VIEW
  • LOCK TABLES
 mysqldump: Got error: 1044: Access denied for user 'XXXXXX' 
to database 'YYYYYY' when using LOCK TABLES

対処方法は2つ

  • ユーザに権限を与える
 grant LOCK TABLES on データベース名.* to ユーザ名@ホスト名 ;
  • mysqldumpのオプションに --skip-lock-tables をつける。

 

■ Postgres

nekokamuri.exblog.jp


プランター栽培「春菊」13日目

ーー春菊の成長日記13日目ーー

春菊のふた葉が立派になってきたので、間引きすることにしました。

f:id:harry7188:20161002073930j:plain

すこし間隔があいてスッキリしたかな?

春菊は茎が細いので、水をそーっとあげた方が良いとネットで読んだので、

優しくあげているのですが、それでも倒れてしまう。。。

f:id:harry7188:20161002080239j:plain

間引いた芽は、お味噌汁に入れました。

ちゃんと春菊の味がしました(・v・)美味しい!