インターネット接続が出来ない環境でCentOSを構築した場合でも、今回紹介するようなyumサーバ(yumリポジトリミラー)を構築しDMZ領域に設置することで、yumを用いたパッケージ導入が可能になる。
今回は、そんなyumリポジトリサーバをCentOS 7を用いて構築を行う。

1.前提パッケージの導入

yumサーバ(yumリポジトリミラーサーバ)は、ただミラーサーバとして動作させるだけであればwebサーバ機能(+外部のyumサーバからパッケージを取得してくるrsyncコマンド)があれば事足りる。独自のrpmパッケージを配布したい場合は、別途createrepoパッケージが必要になる。...


一時的に各サーバの動作を監視したいとき、Teratermのウィンドウを複数表示させ、ブロードキャストコマンドで一括でコマンドを実行する事がある。
今回は、そんな時に利用できるよう、host.listに記述されたホストに対し連続でログインしコマンドを実行、ウィンドウを整列させブロードキャストコマンドのウィンドウを表示させるマクロを作成した。

基本的には、以前書いたログイン先を選択して自動ログインを行うTeratermマクロをカスタマイズしたものだ。
ファイルの種類などはこのマクロと同じため、メインとなるttlファイルの内容のみを記述する。


2017/02/18

バージョン管理するのもつらいし、ソース等はGitHubに移動することにした。 利用するのであれば、そちらを参照してもらったほうがいいと思う。


以前記述した、ログイン先をリストボックスで選択して自動的にログインするTeratermマクロをさらにもう少し改修・改良してみた。 変更内容は、リストに記述されているログイン先ごとに、どのiniファイルを読み込ませるのかを事前に定義し、サーバや種類ごとにウィンドウの色分けなどをさせる、というもの。

このマクロは...


RemoteApp専用ユーザを作成して、Remote Appのみ接続可能にさせる方法

Windows ServerやWindows 7 Ultimateで利用できる、サーバ上のアプリケーションのみをローカルマシンで実行できるRemoteApp。
この機能はリモートデスクトップの機能を利用して実現されているため、RemoteAppのみを許可させる、という設定項目が存在していない。(Windows Server 2012時点)

特定のユーザでRemote Appのみを許可し、リモートデスクトップでの接続を無効にするには、どうすればよいのだろうか?
リモートデスクトップで接続した際、即座にログオフ処理が走れば、リモートデスクトップ接続が無効(できない)と同義になるだろう。

...
ユーザーごとのローカルグループポリシー(セキュリティポリシー)を設定する

Windowsでは、ローカルグループポリシーエディター(gpedit.exe)を利用してサーバやユーザー全体のセキュリティポリシー(パスワードポリシーやリモートデスクトップ接続時に自動実行させるプログラムなど)を設定できる。では、ユーザーごとにセキュリティポリシーを設定するにはどうすればいいのだろうか?

ユーザーごとにセキュリティポリシーを設定する場合、『Microsoft 管理コンソール(mmc.exe)』を用いる事で設定が可能となる。

まずは、『mmc.exe』を起動する。

『mmc.exe』起動後、[ファイル] > [スナップインの追加と削除]を選択する。

『スナ...


「◯◯時からXX時までの間のログを抽出」というような、時間で指定ができる『timegrep』コマンド

ログを閲覧する際、「◯月◯日の◯時~☓時までの間」のログを見たいという事があるだろう。
そんな時便利なのが、今回紹介するtimegrepコマンドだ。これは、まさにその時間を指定してログを抽出することができるコマンドだ。

今回は、CentOS 7にこのコマンドをインストールして、実際に利用してみることにする。

1.インストール

まずはインストールから。以下のコマンドを実行し、実行ファイルのダウンロード、配置を行う。

git clone https://github.com/linux-wizard/timegrep
cp ./timegrep/timegrep /usr/bin...

Ubuntuデスクトップで使える、Fencesのようなアイコン整理ソフト『Folderview Screenlet』

Windowsのデスクトップアイコン整理ツールといえば『Fences』だが、実は似たようなソフトがLinuxでもある。
それがこの『Folderview Screenlet』だ。

今回は、実際にこのソフトをUbuntu 14.04 LTSにインストールして使ってみる。

1.インストール

まずはインストール。
以下のコマンドをターミナルで実行する。

wget https://launchpad.net/~screenlets/+archive/ppa/+files/folderview-screenlet_0.9.91%2B%2B%2B~precise1_all.deb
su...

Windowsのデスクトップ上に散らかったアイコンを整理する、デスクトップ整理ソフトウェア5個

Windowsを利用する上で、デスクトップにファイルを置く人は多いだろう。そして、そうやってデスクトップが散らかっていく人も多いはず…。
今回は、そんなWindowsのデスクトップ上にあるアイコンを整理するためのソフトウェアを5個紹介する。

1.デスクトップのアイコンを枠内に収めさせる『Fences』

一昔前は定番ともいうべきだったデスクトップアイコンの整理ソフト。
数年前に無料版がなくなったため、無料の時よりは使っている人は減ってしまったと思うが、今なお一番出来がいいソフトだ。
(一応、30日間の無料トライアル版はある)

デスクトップ上に、名前の通りフェンス(柵)をつ...


Teratermマクロが書けなくても大丈夫!Teraterm Menuによる自動ログイン

以前より、Teratermでのサーバの自動ログイン対応について記述してきた。
しかし、それらはあくまでもTeratermマクロコマンドプロンプトからTeratermを実行させるような方法だった。

今回紹介するのは、Teratermのインストール時に同時にインストール可能なソフト、Teraterm Menuを用いた方法だ。

Teraterm Menuは、Teraterm ProjectがメンテナンスをしているTeraterm管理用の常駐ランチャだ。非常に簡単な方法で設定でき、GUIで設定ができるため、マクロが書けなかったり、コマンドプロンプトがあまり得意ではない人には便利な方...


Bashの機能を用いて実行したコマンドをsyslogで記録させる

前回、実行したログをsyslogで記録させるSnoopy Loggerを紹介したのだが、今回紹介する機能はbashを利用してそれと同じような事が出来る。
そう、bashでは4.1以降だとhistoryをsyslogに出力出来るようになっている。

…ただ、どうやらセキュリティの問題(コンソールで実行したコマンドにパスワードが入っていたりなど?真偽は不明)もあるようで、ディストリビューションに入っているbashではこの機能はオミットされているようだ。
そのため、この機能を使うにはbashを別途コンパイルする必要がある。

今回は、こちらのサイトの内容を元にCentOS 7上でこの...


Snoopy Loggerでコマンドの実行ログをSyslogで残す

以前、ログイン時にscriptコマンドを実行させて、自動的にターミナルのログを記録させる方法についてを記述した。 今回紹介するSnoopy Loggerは、そのコマンドの実行結果(catで開いた出力内容など)は記録することは出来ないが、どのユーザーがいつ、どのようなコマンドを実行したのかをsyslogで記録指定くれるLoggerだ。

1.インストール

まずはインストールから。 インストール方法は、パッケージ管理ツールからインストールする方法とスクリプトからインストールする方法、ソースからコンパイルする方法がある。 今回は、パッケージ管理ツールからのインストールとスクリプトからの...


CentOS 7とSamba4で自宅用Active Directory Domain Controller (AD DC)を構築する⑤ 移動ユーザープロファイルの設定を行う

さて、今回はCentOS 7とSamba4で構築したDomain Controllerを用いて、移動ユーザプロファイルの設定を行う。
移動ユーザプロファイルというのは、ユーザごとに持っている環境設定(壁紙の設定やマイドキュメント配下のファイルなど)をドメインごとに共通で保持させる設定だ。

この機能を利用することで、ログイン時にフォルダの中身が自動的にADサーバ上のフォルダと同期される。ただ、あまり容量が大きくなるとログイン時に時間がかかるようになってしまうので、今回は参考サイトと同じく、この移動ユーザプロファイルとセットで使われる事の多いフォルダリダイレクト機能(各マシンで共有するフ...


CentOS 7とSamba4で自宅用Active Directory Domain Controller (AD DC)を構築する④ アカウントポリシー(パスワードポリシー)を設定する

今回は、CentOS 7上で作成したドメインコントローラーで、パスワードのルールなどを管理するアカウントポリシーの設定を行う。
なお、Samba 4のドメインコントローラーでは一部(アカウントのロックアウトなど)の機能が正常に動作しないようなので、実質的にはパスワードポリシーのみとなっている。

1.Windows(クライアント)から管理する

Windows上からのパスワードポリシーの設定は、「グループポリシーの管理」から設定する。
まずは、「グループポリシーの管理」から、[フォレスト] > [ドメイン] > [管理するドメイン名] > [Default Domain Policy]...


CentOS 7とSamba4で自宅用Active Directory Domain Controller (AD DC)を構築する③ ユーザー管理を行う

前回までで、Samba4で作られたドメインコントローラー、それをWindowsからGUIでリモート管理するリモートサーバ管理ツールまでを記述した。
今回は、実際にユーザーの管理を行っていく。

1.Windows(クライアント)から管理する

Windows上でのユーザー管理は、前回紹介したリモートサーバ管理ツールから行う。
GUIでの操作になるため、ここではユーザの作成にのみ触れるものとする。

といっても、何ら難しいものではない。
まず、ユーザーを追加したいコンテナ(ここでは、Users)を選択し、新規ユーザの作成ボタンを押下する。

ユーザの情報入力画面が表...


CentOS 7とSamba4で自宅用Active Directory Domain Controller (AD DC)を構築する② リモートサーバ管理ツールの導入

さて、前回CentOS 7上にSamba4を用いてドメインコントローラーを構築したが、今のままだとLinux上からしかActive Directoryの管理が出来ない。
そこで、管理を簡単にするために、クライアントであるWindows 7上にリモートサーバー管理ツール(Active Directory のドメインコントローラーに接続し、管理を行うソフトウェア)をインストールする。

前提条件としてインストールを行うクライアント機は対象ドメインにAdministratorユーザでログインしている必要がある。

1.インストーラーのダウンロード

まずは、リモートサーバー管理ツールのインス...


CentOS 7とSamba4で自宅用Active Directory Domain Controller (AD DC)を構築する① インストール編

一定の規模を持つWindows環境を構築する上で、無くてはならないのがActive Directoryだ。 そのActive Directoryを使う上で欠かせないDomain Controllerだが、実はSamba 4で構築可能となったのだ。

今までのバージョンでは別途必要であったLDAPサーバやDNSサーバの導入も不要となっており、Samba 4でのDomain Contorllerでのドメインの連動テストにはMicrosoftも協力していることから、普通に利用する分には問題なく動作するだろう事が伺える。

それでは、早速インストールをしてみよう。なお、今回の構築・検証はこち...


ローカルにおいてあるrpmパッケージの依存関係の順番を気にせずにインストールする方法

インターネットに接続出来ない状態でrpmパッケージをインストールする場合、ローカルに一度rpmパッケージをダウンロードして依存関係を気にしながら順番にインストールを行う事が多いだろう。
それが面倒な場合、ローカルに設置したパッケージに対し、yumコマンドのlocalinstallで一括インストールを行うと良いだろう。

yum localinstall --nogpgcheck rpmパッケージ1 rpmパッケージ2 ...

もちろん、ワイルドカードで指定することもできる。
以下は、「/work/puppet」フォルダ配下にあるPuppetに関するrpmパッケージを一括でインストール...


よくあるコンピューターあるあるネタが現実に起きると…『if computer problems were real』

日常でPCを利用していると、色々な不具合に出くわすものです。
デスクトップのフォルダが開けなかったり、OSが遅くなったり…。そんなことがもし現実世界でおきたらどうなってしまうのでしょう?

If Computer Problems Were Real - Awkward Spaceship

動画が開始する。場所はとあるオフィスの中のようだ。

「デスクトップ上にあるフォルダが開けないよ」とのこと。

…ああ、確かにデスクトップ(机の上)にあるフォルダが開けないようだ。


Linux/UNIXでifconfig・ip・hostnameコマンドからOSのIPアドレスのみを取得する

LinuxやUNIXで、ただIPアドレスを知りたいだけではなく、IPアドレスのみを取得する場合、以下のようにすると良いだろう。

1.ifconfig・ipコマンドで取得する場合

ifconfig・ipコマンドでIPアドレスのみを抽出する場合、以下のようにする。

ifconfigコマンド

ifconfig インターフェイス名 | grep 'inet' | cut -d: -f2 | awk '{ print $1}'

ipコマンド

ip addr list インターフェイス名 | grep "inet " | cut -d' ' -f6 | cut -d/ -f1...

ssh経由でディレクトリにあるファイルの差異を確認する

時には、ssh越しにディレクトリの中にあるファイルに差異が無いかを確認したいときもある。
今回は、そんな時に使える確認方法について記述する。

1.diffコマンドで確認する

公開鍵認証でのログイン設定が行われている(もしくは、sshpassコマンドが導入されている)ようならば、diffコマンドで差異を確認することができる。
以下のようにコマンドを実行することで、ローカル、リモートどちらかで足りないファイルを確認する。

diff <(ssh ユーザ名@ホスト名 'find /確認するPATH -type f | sort') <(find /確認するPATH -type f...

今回はCentOS 7でBondingを行い、NICの冗長化設定を行う。
といっても、基本的にはCentOS 6などと対して違いはない。

1.ネットワーク情報の設定

まずは、bond0のデバイス情報を作成する。
…の前に、CentOS 7ではデフォルトだとbondingのモジュールがロードされないので、以下のコマンドで有効化する。

modprobe --first-time bonding

次に、デバイスの設定ファイルとして「/etc/sysconfig/network-scripts/ifcfg-bond0」を作成する。

/etc/sysconfig/network-

...

CentOS 7からは、デフォルトのNIC名がeth0、1…ではなく、ens~という名称になる。
ただ置き換わるだけならばいいのだが、このens~以降の数字がランダム…という訳ではないようなのだが、連番で採番されるわけでもなく、いかんせん分かりにくい…

そこで、このens~というNICを、古典的なeth0、1といったものに書き換えていく。

1.「/etc/default/grub」の編集

まずは、「/etc/default/grub」を編集し、カーネル起動時のオプションとして「net.ifnames=0 biosdevname=0」を追記する。
以下のコマンドを実行することで、...


コンソール上でログをカラフルに見やすく表示してくれるログビューアコマンド『lnav』

以前、ログを見やすく表示してくれるccze-toolというものを紹介した事があったが、今回はそれと同様にログをカラフルに閲覧できるログビューア『lnav』を紹介する。
このコマンドはLinuxだけではなく、Mac OS Xにも対応している。

1.インストール

まずはインストール…というほどのものではなく、単にこちらのページから実行ファイルをダウンロードして配置するだけだ。
現時点での最新版はVersion 0.7.1となるので、そちらのバージョンでの取得を以下のコマンドで実行する。

Linuxの場合

wget https://github.com/tstack/...

findコマンドで覚えておきたい使い方12個(+1個)

LinuxやUNIXで仕事をしていると、特定のファイル(名前だったり、さっき編集されたファイルだったり)がどこにあるのかを知りたい事が多々ある。
そんな時は、やはりfindコマンドの出番だ。今回は、そんなfindコマンドで覚えておきたい便利な使い方についてまとめてみる事にした。

1.ファイル名で検索する

まずは基本。findコマンドでは最も利用されているであろうファイル名での検索。
例えば、以下のように「-name」オプション付きでコマンドを実行することで、「test」というファイルが出力される。

このキーワードは、最下層(ディレクトリであれば一番下のディレクトリ、ファイルであ...


カーネルパラメーターの設定ファイルである「/etc/sysctl.conf」に変更を行った場合、ただそれだけでは変更は反映されない。
設定ファイル変更後に再起動を行うか、以下のコマンドを実行することで、その変更を読み込ませる事ができる。

sysctl -p

Tomcatのポート番号といえば8080番がデフォルトで設定されているのだが、この設定を変えたい事もあるだろう。
そんなときは、「$CATALINA_HOME/conf/server.xml」の該当する箇所を書き換えればいいだろう。

以下は、Tomcat 7のデフォルト状態の「$CATALINA_HOME/conf/server.xml」。

$CATALINA_HOME/conf/server.xml


CentOS 7 にTomcat 7をインストールする

個人的には、あまりTomcatやJavaといったものが好きではなかったのだが、今のプロジェクトがTomcatを扱っているため、忘れないように設定方法についてを記述していくことにする。
まずはOracle JDK及びTomcatのインストールから。

1.Oracle JDKのインストール

まずは、Tomcatをインストールする上で前提となるJDKのインストールを行う。
JDKにはOpenJDKとOracleJDKがあるが、通常業務で利用する場合はOracleJDKを用いるので、そちらをインストールする。

まずは、Oracle社のこちらのページからOracle JDKをダウンロ...


sshで公開鍵認証を設定したけれども、それがうまく認証されずにパスワードを求められる場合、以下の観点から設定を見直す事をおすすめする。

1.サーバ側のファイル・ディレクトリのパーミッションや所有者設定がおかしい

原因として、一番多いのがこのパーミッションや所有者設定だろう。
sshの仕様上、各ディレクトリは以下のようなパーミッションになっていなければならない。

  • 「~/.ssh」ディレクトリ … 700(drwx------)
  • 「~/.ssh/authorized_keys」ファイル … 600(-rw-------)

もちろんディレクトリやファイルの所有者はホームディレク...


LinuxでコンソールからWindowsを操作しよう!PSexecのLinux版『winexe』コマンド

以前、Windowsに対してコマンド操作を行うツール『PSexec』について紹介したことがあったが、今回はそのLinux版のコマンド『winexe』を紹介する。

1.インストール

それでは、まずはインストールしてみよう。
各OS(Ubuntu/CentOS/Mac OS X)ごとに、以下のようにインストールを行う。

1-1.Ubuntu/Debianの場合

以下のコマンドを実行する。

wget http://download.opensuse.org/repositories/home:/uibmz:/opsi:/opsi40-testing/xUbuntu_12.0...