タイガー!タイガー!じれったいぞー!(SE編)

AS400, Java, JavaEE, JSF等の開発、習慣など。日々の気づきをまとめたブログ(備忘録)

「JJUG CCC 2016 Spring」に行ってきました

昨年同様、「JJUG CCC 2016 Spring(5月21日開催)日本Javaユーザーグループ」に行ってきました。
去年は、後輩と2人でお上りさんぶりを発揮してしまい、会場まで行くのを時間ロスしてしまい、時間通りに辿りつけませんでしたが、今年は余裕の20分前着席!
ここしばらく、インフラ周りの仕事が中心だったので、アプリケーション・エンジニアとして目が覚める素晴らしいイベント体験となりました!

参加したセッションについて、自分なりの感想をまとめておきたいと思います。


日本Javaユーザーグループ総会

JJUGの1年のコミュニティー活動を知ることができました。本業外で毎月、そして年2回の大イベント実現、その他もろもろ・・・、本当に頭が下がります。
毎回思うのです。都心には住みたいとは思いませんが、ナイトセミナーやLiveなど身近に参加できるというのが、羨まし過ぎます。
確かにWebで動画や資料を拝見することは可能なのですが、リアル参加では、生で感じる空気感や講師の方の追及心により、自分のモチベーション・ガソリンをリアルで注げることが最大の利点ですから!

Type Annotation for Static Program Analysis

ここは迷わずチャンピオンの講義を選択!
超一流の話し方、表情、資料、間の取り方、そしてバックミュージックをじっくり堪能させていただきました! (今回はエアロスミスではなく、ビートルズからのつかみ。個人的にはリラックスできました)
内容的には、Type Annotationの話。正直、その存在自体わかっていませんでした。JavaEEばかりやっていますが、こつこつとJavaSE力を上げる必要性を痛感しました。櫻庭さんの新書は購入済みなのに手つかずなので、下記のサイトと合わせて教材にしてレベルアップを図っていきたいと思います。

itpro.nikkeibp.co.jp

Eclipse Collectionsで学ぶコード品質向上の勘所

こちらの講義では、何のためのコードレビューか?という目的からきちんと説明していただいたことで、その後のコード説明がすんなり頭に入ってきました。「技術的負債」・・・非常に頭の痛い話で、その負債が雪だるま式になっている自分の現状を知るきっかけとなったでしょう。
まずは、Eclipse Collections、パフォーマンス解析ツールなど、じっくりと触ってみたいですね。

資料

Jenkins2.0

昨年、Jenkinsのコミュニティーに参加できたので、川口さんの話を聞けるのは2回目。
職場でもJenkinsが動いているので、戻ったら検証のうえ、早急に2.0へアップして、現行のタスクをパイプラインへ変換しようと思います。
確かにGUI複数の作業を定義していて、その作業ステップがわかりにくかったり、その変更履歴なんかをGitで管理できればいいなぁとは感じていたので、この改変は非常に嬉しい!
さらに、今回、jenkinsの誕生秘話もお聞きできたので、何かを成し遂げるのに必要なものは、物理的な充実ではなく、目的を達成のために行動を継続する、ということを教えていただけたように思います。おまけですが、Serverを「計算機」と呼ばれていたことが印象的でした。

春だからJavaプログラミング再入門

尊敬するスペシャリストの1人、きしださんの講義。
今回は膨大なスライドということで、テンポよく説明しておられました(高校、大学の講義のような内容でした)。随所にでてくるセンスあふれるたとえ(ex:おにぎりまたはサンドウィッチを取ってほしい)が感動的でした。そして、最後の下記のコメントが特に印象的で、自分の息子たちにも早くプログラムをやらせようかと勝手に妄想してしましたね。

プログラムを書くという行為は、論理を証明するということ(論理のトレーニングをしている)。

欲を言えば、きしださんの近況が聞きたかったところですが・・・。はやくゴールド聖闘士の強さを知っていただきたくなりました。

Docker on A.* 〜開発から運用まで〜

去年秋頃にフラットファイル型のCMSをDockerで動かして運用しているとこですが、Javaの開発で活かすには?という動機から、こちらの講義をチョイス!   ただし、内容が完全にクラウド前提(しかもマルチクラウド)だったので、すぐに実用化とはならなそうです。
ただし、いつかオンプレ環境とお別れする日も来るはずなので、クラウド環境についても、少しずつ勉強していく必要がありそうです。早急に試せることとしては、DockerのAlpineイメージと、Private Docker Registryでしょうか。

SmartNews のニュース配信を支えるサーバ技術

毎日、SmartNewsを使っている中毒者の私。これはぜひともバックボーンを知りたいと参加したのですが、知らない世界ばかりで目が点になるという・・・。
Java周りは何とかついていけたのですが、CircleCI、Kotlin、RxJava、DataDog、NewRelic、Pagerdutyなどなど知らないものばかり。
今の自分は、Zabbixでの死活監視ができるようになって喜んでいるレベル。システムの規模が違えど、世界は広しということを痛感する講義となりました。
まずは、今回はじめて知ったキーワードより、そのサービスの概要をひとつずつ理解していく必要がありそうです。


今回は、JavaEEに関する講義も少なく、自分が参加した講義も、JavaSE、コード品質管理、CI、インフラ系という選択になりました。
来年にはJavaSE9、さらにEE8が登場してくるので、それまでの間にJavaSE基礎力、さらにはその周辺技術を理解・習得し、現行のEEアプリ開発をきちんと回せていければと思っています。

それにしても今回のJJUG、前回以上に刺激になりました! 急に上級者になれるわけではないので、簡単なものから、少しずつ前進していくしかないですね!!! 通常のワークだけでレベルアップが図れるわけがありませんから・・・。

「何かを得るには、何かを捨てなきゃ!」  (海賊戦隊ゴーカイジャー バスコの口癖より)

Windows Update適用後にExcel、Acrobat、IEが起動しなくなる現象発生!

先週の話なのですが、2016年4月更新分のWindows UpdateWindows7 PCに適用した後に、ExcelなどのMS Office等が起動できなくなる現象が発生しました。

まだまだあやふやな状態ですが、原因と対処方法がわかったので、まとめておこうと思います。

症状発生パターン

いろいろ調べていくと、下記のパターンのPCで同一の現象が見られました。

  • Windows7 32bit OS
  • EMETをインストール (Ver 5.5.5871.31892)
  • MS Office 2010, 2013

Excelを例にしますと、Excelファイルを直接クリックで起動する、またはExcelアプリを起動する、どちらのケースでも、しばらくするとExcelが起動せずに、下記のようなメッセージが表示されてました。

プログラムにコマンドを送信しているときに、エラーが発生しました。

f:id:no14141:20160419124630j:plain

さらに、タスクマネージャーを見てみると、「EXCEL.EXE」が残ってしまっています!
なお、IEやPDFはメッセージが出力されるわけではなく、アプリが起動せず、ただプロセスだけが残っていました。

原因

Windows10(64bit)でEMETを入れているPCが問題が無かったので、EMETを疑うことはなかったのですが、試しにEMETを無効にしたところ、EXCELやPDFが通常通り、起動してくれました!

ということでEMETがEXCELなどのアプリをブロックしてしまっていたようです。

EMETも、セキュリティ強化の一環で、何も設定せずにインストールして、常駐させていたのですが、やはりきちんと機能を理解して運用しないといけないわけですね。

とりあえず、EMET側の設定でEXCEL等に関するものがあったので、いったん無効にして、運用することにしました。

EMETの設定

  • タスクトレイにあるEMETを右クリックで「Open EMET」を選択。

  • ConfigurationでAppsボタンをクリック。

f:id:no14141:20160419125939j:plain

  • EXCELであれば、AppNameから「EXCEL.EXE」を右クリックして、「Disable All Mitigations」を選択。ちなみによくわかっていません。取り急ぎ、EXCEL等を起動させるためです。

f:id:no14141:20160419125944j:plain

f:id:no14141:20160419125949j:plain

総括

いずれにしましても、現時点で根本的な原因が特定できておりません!
Windows10では、EMETがあっても影響がなかったわけですし、32ビットOSのパッチに影響があったのでしょうか?
引き続き、様子をみたいと思っています。

【NetBeans】デプロイ先の変更方法

先日、APをglassfishからpayaraへ変更したのですが、WindowsPCのIDEからのデプロイ処理だけが、旧glassfishのパスで実行されてしまう問題が発生しました。その解決方法をまとめておこうと思います。

トラブル内容

  • 元々のglassfishのパスは、「C:\glassfish4_1」。新しいpayaraのパスは、「C:\payara41」です。
    NetBeansも8.1を入れて、いざMavenのデプロイ処理を実行してみると・・・
------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------
Total time: 28.925s
Finished at: Thu Nov 05 17:11:55 JST 2015
Final Memory: 16M/178M
------------------------------------------------------------------------
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
NetBeans: Deploying on [C:\glassfish4_1\glassfish;C:\glassfish4_1\glassfish\domains\domain1]deployer:gfv3ee6wc:localhost:4848
    profile mode: false
    debug mode: false
    force redeploy: true

Deploying onのパスが、glassfishのままになっているではないですか!

解決方法

プロジェクトを右クリック→プロパティ→実行内の「サーバー」を<サーバーが選択されていません>の状態で保存しておきます。

f:id:no14141:20151118175223j:plain

その後、デプロイを行いますと、デプロイメントサーバー先を聞かれるので、ここであらためてpayaraを選択してあげます。(合わせて、永久に記憶を選択。)

f:id:no14141:20151118175235j:plain

結果、新しいAP先へのデプロイが実行されるようになりました!

なかなか、難しいところですね。

【NetBeans】Glassfish4.1.1との連携

久しぶりに、Javaの開発に戻ってきたのですが、2015年10月には、Glassfish4.1.1が出ているし、サードパーティーのPrimeFacesも5.3が出ているじゃないですか!!!

というわけで、開発機で、Glassfish4.1.1を配備して、NetBeans8.0.2で連携しようとしてみると・・・

f:id:no14141:20151105202004j:plain

f:id:no14141:20151105202010j:plain

あれ? 「有効なGlassfish Serverのインストールではありません」と出てしまう。 インストール場所は、合っているのになぜでしょう?

試しに、「Payara4.1.1.154」でもやってみると、下記の通り、こちらは認識してくれました。

f:id:no14141:20151105202016j:plain

f:id:no14141:20151105202023j:plain

Glassfishが新しくなったということは、もしやIDEが上がっていると思ってNetBeansのDownloadsを確認してみると、やはり「NetBeans8.1」がリリースされておりました。

https://netbeans.org/downloads/?pagelang=ja

というわけで、「NetBeans8.1」を入れたのち、サーバーの追加から「Glassfish4.1.1」の場所を指定してやると、問題なく、Glassfish Server4.1.1のインストールとして認識してくれました!

f:id:no14141:20151105203314j:plain

基本的なことだったのかもしれません。 今日は、かなり時間を無駄にしてしまい、反省の多い1日でした・・・。

今後は、必須技術に関するアンテナをもっと高くし、行動のサイクルを速めていかなければなりませんね。

【Docker1.7】Nginxコンテナ生成+起動テスト

前回のブログで構築したVagrant(CentOS7.1)をホストOSにして、Nginxコンテナを生成・起動してみたいと思います。

tigertaizo.hatenablog.com

vagrantユーザをdockerグループに所属させる

vagrantをdockerグループに加えることで、vagrantユーザーがdockerコマンドを実行できるようになります。

$ sudo docker images
Get http:///var/run/docker.sock/v1.19/images/json: dial unix /var/run/docker.sock: no such file
 or directory. Are you trying to connect to a TLS-enabled daemon without TLS?
 
$ sudo groupadd docker
$ sudo usermod -g docker vagrant
$ sudo /bin/systemctl restart docker.service
 
$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

Docker HubからNginx(Offical) Dockerイメージを取得

  • Dockerイメージとは、OS環境とアプリケーションを含んだイメージで、これからDockerコンテナの上で仮想的に起動させるものになります。
  • Docker Hubとは、Dockerイメージを共有するためのWebサービス
  • まずは、DockerHubサービスにある、OfficalなNginxイメージを取得してみました(docker pullコマンドを使用)。
$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

$ sudo docker pull nginx
latest: Pulling from docker.io/nginx
e2a4fb18da48: Pull complete
58016a5acc80: Pull complete
657abfa43d82: Pull complete
dcb2fe003d16: Pull complete
c79a417d7c6f: Pull complete
abb90243122c: Pull complete
d6137c9e2964: Pull complete
85e566ddc7ef: Pull complete
69f100eb42b5: Pull complete
cd720b803060: Pull complete
7cc81e9a118a: Pull complete
5c82215b03d1: Pull complete
docker.io/nginx:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
Digest: sha256:44e64351e39e67b07799a1ce448cef33aaa88daedbbb5f427fac4eeafe3e148f
Status: Downloaded newer image for docker.io/nginx:latest

$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
docker.io/nginx     latest              5c82215b03d1        4 days ago          132.8 MB

なお、Dockerイメージの取得については、下記のサイトが参考になりました。

thinkit.co.jp

Case1: nginx基本起動

  • 次に、先に取得したnginxイメージをdokcerコンテナの上で起動させてみます。
  • 起動させるdockerコンテナは、名前を付けたほうがいいようなので、起動時に定義します(--name)。
  • オプションdを付けることで、コンテナをバックグランドで実行させます。
  • さらに、ホストOS側のポートと、Dockerコンテナ側のポート番号の紐づけが必要なため、オプションpで80番通しを結び付けます。
$ sudo docker run -d --name nginxTest -p 80:80 nginx
8782411bcb5a89d7429e39af6e44d48809ad5a4b9667bc45a2e1382187c5ee4f
Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.

「Usage of loopback devices is~」という警告がでいますが、よくわかっていません(今回はスルー)。
WindowsPCからブラウザで、「http://192.168.33.10/」へアクセスすると、下記のとおり、nginxが起動できていることを確認できました!

f:id:no14141:20151018161848j:plain

Case2: nginx起動(設定ファイル、htmlドキュメント、ログをホスト側と共有する)

  • nginx基本起動では、自分で作成したhtmlを公開できないので、docker run実行時に、ホストOSとコンテナOSとでヴォリューム共有させます。

その前に、設定ファイル、htmlドキュメント、ログを格納するディレクトリをホストOS上に作成しておきます。さらに、Case1のDockerコンテナにあるファイルをホスト側にコピーさせました。

$ sudo mkdir /opt/nginxTest
$ sudo mkdir /opt/nginxTest/html
$ sudo mkdir /opt/nginxTest/conf
$ sudo mkdir /opt/nginxTest/logs

$ sudo docker cp nginxTest:/etc/nginx/nginx.conf /opt/nginxTest/conf/
$ sudo docker cp nginxTest:/usr/share/nginx/html/index.html /opt/nginxTest/html/
$ sudo docker cp nginxTest:/usr/share/nginx/html/50x.html /opt/nginxTest/html/

さらに、自分で作成したhtmlファイルをホスト側に設置しておきます。

  • /opt/nginxTest/html/test01.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>テスト1</title>
</head>
<body>
<h1>テスト1</h1>
<p>...from DockerTest2</p>
</body>
</html>

さあ、docker runで起動させます。ヴォリューム共有は、オプションvで。今回は、ポートも変更してみました!

$ sudo docker run -d --name nginxTest2 -v /opt/nginxTest/html:/usr/share/nginx/html -v /opt/nginxTest/conf/nginx.conf:/etc/nginx/nginx.conf -v /opt/nginxTest/logs:/var/log/nginx/ -p 8001:80 nginx

f2f8592d06d476fde93ad235d9fb13799a77734d31148e5893b89697cefadd7b
Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.

いい感じです!  ホストOS側のディレクトリに新しいファイルを追加しても、ただちにdockerコンテナのnginxからアクセス可能になります。

f:id:no14141:20151018172239j:plain

アクセスした後、ログファイルも念のため、確認しましたが、きちんとホストOS側のファイルにログが吐き出されているようです!
(ただし、タイムスタンプが標準時間になっていますが・・・)

$ cat /opt/nginxTest/logs/access.log
192.168.33.1 - - [18/Oct/2015:09:24:40 +0000] "GET /test01.html HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0" "-"
192.168.33.1 - - [18/Oct/2015:09:32:46 +0000] "GET /test01.html HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0" "-"
192.168.33.1 - - [18/Oct/2015:09:33:41 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0" "-"
追記:Dockerコンテナのタイムゾーンについて

qiita.com

上記を参考にさせてもらって、コンテナ生成時に、タイムゾーンをホストOS側と共有させたところ、うまくいきました!

$ sudo docker run -d --name nginxTest2 \
 -v /opt/nginxTest/html:/usr/share/nginx/html \
 -v /opt/nginxTest/conf/nginx.conf:/etc/nginx/nginx.conf \
 -v /opt/nginxTest/logs:/var/log/nginx \
 -v /etc/localtime:/etc/localtime \
 -p 8001:80 nginx

Dockerコンテナの操作

  • 最後に、Dockerコンテナを管理するコマンドをまとめまて、今回は終わります。

起動中のDockerコンテナ確認(docker ps)

$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                         NAMES
8782411bcb5a        nginx               "nginx -g 'daemon of   50 minutes ago      Up 50 minutes       0.0.0.0:80->80/tcp, 443/tcp   nginxTest

すべてのDockerコンテナ確認(docker ps -a)

$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                         NAMES
8782411bcb5a        nginx               "nginx -g 'daemon of   51 minutes ago      Up 51 minutes       443/tcp, 0.0.0.0:80->80/tcp   nginxTest

まだ、1つしか作っていませんでした。。。

Dockerコンテナ停止(docker stop)

  • コンテナを実行中から停止中にする命令です。
  • docker runコマンド実行時にしていたコンテナ名を指定すれば、楽チンですね。
  • ちなみにDockerコンテナを起動中のまま、ホストOSを再起動したら、コンテナは終了します(当然ですね!)。
$ sudo docker stop nginxTest
nginxTest

Dockerコンテナ開始(docker start)

  • 一度停止状態にしたコンテナを再度、開始する命令です。
  • ホストOS再起動後に、この命令を実行することになるのでしょう。
  • docker runで定義したオプションは、startオプションでは不要です(ポート番号やヴォリューム共有などの再定義は不要)。
$ sudo docker start nginxTest
nginxTest

Dockerコンテナ強制終了(docker kill)

  • 実行中のDockerコンテナを強制終了させる方法です。
  • docker stop で停止できない場合に使うのでしょうか。
$ sudo docker kill nginxTest
nginxTest

Dockerコンテナの削除(docker rm)

  • 不要なDockerコンテナを削除します。
  • ただし、DockerイメージやDockerfileがあれば、いつでもコンテナを生成できる状態にあるでしょう。
$ sudo docker rm nginxTest
nginxTest

$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

【Docker1.7】CentOS7(vagrant)へインストール

概要

  • ちまたで話題のDockerをマスタすべく、ローカルWindowsPCで動作検証しました。詳しくないので、ひとつずつ、じっくりと・・・。
  • 検証の結果、イントラネット内のクリティカルではない「WWW Server」として複数公開するケースなどで、実用できるのではないかと思っています。
  • ひとつずつ結果をまとめていこうと思います。

セットアップ手順

ベースとなるホストOS環境は、ほとんどzabbix検証のときと同じ環境です。

1. Vangrant構築

> vagrant box add centOS71min https://github.com/holms/vagrant-centos7-box/releases/download/7.1.1503.001/CentOS-7.1.1503-x86_64-netboot.box

> mkdir C:\vagrant\hosts\centos71_docker
> cd C:\vagrant\hosts\centos71_docker

> vagrant init centOS71min
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.

仮想マシンIPアドレス設定

  • 作成されたVagrantfileを編集します。メモ帳などで開き、1行のコメント行を有効にします。
  # using a specific IP.
  # config.vm.network "private_network", ip: "192.168.33.10"  <<< 有効化(#を削除する)

起動

C:\vagrant\hosts\centos71_docker>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centOS71min'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: centos71_docker_default_1445140865540_31304
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default:
    default: Guest Additions Version: 4.3.26
    default: VirtualBox Version: 5.0
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
    default: /vagrant => C:/vagrant/hosts/centos71_docker

C:\vagrant\hosts\centos71_docker>

2. Server接続(192.168.33.10)

  • Tera Termを使ってSSHログインします。
host: 192.168.33.10
port: 22
user: vagrant
pass: vagrant

3. タイムゾーン設定・確認

# timedatectl set-timezone Asia/Tokyo
# timedatectl
      Local time: Sun 2015-10-18 13:02:55 JST
  Universal time: Sun 2015-10-18 04:02:55 UTC
        RTC time: Sun 2015-10-18 04:02:55
        Timezone: Asia/Tokyo (JST, +0900)
     NTP enabled: n/a
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

4. 日本語化

# yum -y install ibus-kkc vlgothic-*
:
Installed:
  ibus-kkc.x86_64 0:1.5.18-5.el7
  vlgothic-fonts.noarch 0:20130607-2.el7
  vlgothic-p-fonts.noarch 0:20130607-2.el7
:
# localectl set-locale LANG=ja_JP.UTF-8
# source /etc/locale.conf
# echo $LANG
ja_JP.UTF-8

5. Sudo設定

  • root権限をvagrantユーザーに全て与えます(毎回要求されるパスワード認証は無し)。
# visudo
:
vagrant    ALL=(ALL)       NOPASSWD:ALL   <<< 最終行に追記する。(119行目)

6.各種パッケージのアップデート/vimのインストール

$ sudo yum -y update
$ sudo yum -y install vim

7.SELinuxのdisabled

$ sudo vim /etc/selinux/config
  • すでに「SELINUX=disabled」になっていました。

8. ファイアウォール無効化

検証用のため、無効にしました。

$ systemctl list-unit-files | grep firewall
firewalld.service                           enabled
# sudo systemctl disable firewalld.service
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
rm '/etc/systemd/system/basic.target.wants/firewalld.service'
$ systemctl list-unit-files | grep firewall
firewalld.service                           disabled

9. Dockerインストール

$ sudo yum -y install docker
:
インストール:
  docker.x86_64 0:1.7.1-115.el7

依存性関連をインストールしました:
  audit-libs-python.x86_64 0:2.4.1-5.el7
  checkpolicy.x86_64 0:2.1.12-6.el7
  docker-selinux.x86_64 0:1.7.1-115.el7
  libcgroup.x86_64 0:0.41-8.el7
  libsemanage-python.x86_64 0:2.1.10-16.el7
  policycoreutils-python.x86_64 0:2.2.5-15.el7
  python-IPy.noarch 0:0.75-6.el7
  setools-libs.x86_64 0:3.3.7-46.el7

完了しました!

$ docker -v
Docker version 1.7.1, build 446ad9b/1.7.1

10. Docker自動起動設定

$ sudo systemctl enable docker.service

これで、Dockerを試せる環境が整いました。これをホストOSとして、コンテナを構築しようと思います!

【AS400】デフォルト・ゲートウェイの変更

AS400セットアップ後、なかなか変更にならなそうなデフォルトゲートウェイの変更方法を記しておきます。

IBM iのVersionは、V7R1になります。

変更方法

  • 例として、現在、「172.16.1.1」のデフォゲを、「172.16.1.254」へ変更する操作になります。

(1) 現状のルーティング・テーブルの確認

CFGTCPメニューを呼び出します。

CFGTCP [実行]

TCP/IP構成メニュー

メニュー番号2の「TCP/IP 経路の処理」を選択。

 CFGTCP                          TCP/IP の構成                                  
                                                          システム :   SYSTEMNAME
 次の中から1つを選択してください。                                             
                                                                                
      1. TCP/IP インターフェースの処理                                          
      2. TCP/IP 経路の処理                                                      
      3. TCP/IP 属性の変更                                                      
      4. TCP/IP ポート制約事項の処理                                            
      5. TCP/IP リモート・システム情報の処理                                    
                                                                                
     10. TCP/IP ホスト・テーブル項目の処理                                      
     11. TCP/IP ホスト・テーブルの組み合わせ                                    
     12. TCP/IP ドメイン情報の変更                                              
                                                                                
     20. TCP/IP 適用業務の構成                                                  
     21. 関連テーブルの構成                                                     
     22. POINT-TO-POINT TCP/IP の構成                                           
                                                                                
                                                                                
 選択項目またはコマンド                                                         
 ===> 2                                                                    
                                                                                
 F3= 終了   F4= プロンプト   F9=コマンド の複写   F12= 取り消し                    

下記が、現状のルーティング・テーブルで、*DFTROUTEの経路がデフォルトゲートウェイとなります。

                               TCP/IP 経路の処理           
                                                          システム :   SYSTEMNAME
 オプションを入力して,実行キーを押してください。   
   1= 追加   2= 変更   4= 除去   5= 表示        
                                                        
                                                                
 OPT   経路宛先        サブネット・マスク       ネクスト・ホップ         優先 インターフェース
    
  -   ---------------  ---------------  ---------------                  
      *DFTROUTE        *NONE            172.16.1.1        172.16.1.10 



               
                                                                            
                                                                         
                                                                         
                                                                        終わり 
 F3= 終了        F5= 最新表示   F6= リストの印刷   F11=TYPE OF SERVICE の表示
 F12= 取り消し   F17= 先頭      F18= 最後       

(2) 新しいデフォルトゲートウェイの登録

まず、新しいデフォゲのルートを追加します。OPT1で、経路宛先、サブネットマスク、ネクストホップを入力し、実行キーで次に進みます。

                               TCP/IP 経路の処理                                
                                                          システム :   SYSTEMNAME
 オプションを入力して,実行キーを押してください。                               
   1= 追加   2= 変更   4= 除去   5= 表示                                        
                                                                                
                                                                                
 OPT   経路宛先        サブネット・マスク       ネクスト・ホップ         優先 インターフェース         
  1   *DFTROUTE        *NONE            172.16.1.254                  
  -   ---------------  ---------------  ---------------         
      *DFTROUTE        *NONE            172.16.1.1       172.16.1.10             






                 
                                      
                                                                                
                                                                        終わり  
 F3= 終了        F5= 最新表示   F6= リストの印刷   F11=TYPE OF SERVICE の表示   
 F12= 取り消し   F17= 先頭      F18= 最後     

有線バインド・インターフェースに、対象のインタフェースのIPアドレスを入力し、実行キー打鍵で登録となります。

                         TCP/IP 経路の追加  (ADDTCPRTE)                         
                                                                                
  選択項目を入力して,実行キーを押してください。                                
                                                                                
  経路宛先  . . . . . . . . . . . > *DFTROUTE                                   
                                                                                
  サブネット・マスク  . . . . . . > *NONE                                       
 TYPE OF SERVICE  . . . . . . . .   *NORMAL       *MINDELAY, *MAXTHRPUT...      
  ネクスト・ホップ  . . . . . . . > '172.16.1.254'                              
                                                                                
  優先 バインド・インターフェース  . . . . .   '172.16.1.10' <<<<<<<<<<<<<<<<<<<(入力)
  最大送信単位  . . . . . . . . .   *IFC          576-16388, *IFC               
  経路メトリック  . . . . . . . .   1             1-16                          
  経路再配分  . . . . . . . . . .   *NO           *NO, *YES                     
  重複経路優先順位  . . . . . . .   *MEDIUM       1-10, *MEDIUM, *HIGH, *LOW    
  テキスト ' 記述 ' . . . . . . .   *BLANK                                      
                                                                                
                                                                                
                                                                                
                                                                                
                                                                         終り   
 F3= 終了    F4=プロンプト   F5= 最新表示    F12= 取り消し                         
 F13= この画面の使用法                    F24= キーの続き

これで新しい経路(DFTROUTE)が追加されました!

                               TCP/IP 経路の処理                                
                                                          システム :   SYSTEMNAME
 オプションを入力して,実行キーを押してください。                               
   1= 追加   2= 変更   4= 除去   5= 表示                                        
                                                                                
                                                                                
 OPT   経路宛先        サブネット・マスク       ネクスト・ホップ         優先 インターフェース         

  -   ---------------  ---------------  ---------------              
      *DFTROUTE        *NONE            172.16.1.1       172.16.1.10             
      *DFTROUTE        *NONE            172.16.1.254     172.16.1.10             






                


                                                                        終わり  
 F3= 終了        F5= 最新表示   F6= リストの印刷   F11=TYPE OF SERVICE の表示   
 F12= 取り消し   F17= 先頭      F18= 最後                                       
 TCP/IP  経路  は正常に追加された。  

(3) 旧デフォルトゲートウェイの削除

最後に、元々のデフォルトゲートを削除します。削除対象のルートに、OPT4を入力し、実行キーで進みます。

                               TCP/IP 経路の処理                                
                                                          システム :   SYSTEMNAME
 オプションを入力して,実行キーを押してください。                               
   1= 追加   2= 変更   4= 除去   5= 表示                                        
                                                                                
                                                                                
 OPT   経路宛先        サブネット・マスク       ネクスト・ホップ         優先 インターフェース    
     
  -   ---------------  ---------------  ---------------                     
  4   *DFTROUTE        *NONE            172.16.1.1       172.16.1.10             
      *DFTROUTE        *NONE            172.16.1.254     172.16.1.10            






        
           
                                                                        終わり
 F3= 終了        F5= 最新表示   F6= リストの印刷   F11=TYPE OF SERVICE の表示 
 F12= 取り消し   F17= 先頭      F18= 最後 

削除の最終確認です。間違いなければ、実行キーで、削除処理を実施します。

                            TCP/IP 経路の除去の確認                             
                                                          システム :   *SYSTEMNAME
 「 4= 除去」の選択項目が正しい場合には,実行キーを押してください。             
 選択項目を変更するためには, F12 キーを押して戻ってください。                  
                                                                                
                                                                                
                                                                                
 OPT   経路宛先        サブネット・マスク       ネクスト・ホップ         優先 インターフェース         
  4   *DFTROUTE        *NONE            172.16.1.1       172.16.1.10             
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                        終わり  
 F11=TYPE OF SERVICE の表示   F12= 取り消し 

無事、デフォゲが1つだけとなり、変更されていることがわかるかと思います!

                               TCP/IP 経路の処理                                
                                                          システム :   SYSTEMNAME 
 オプションを入力して,実行キーを押してください。                               
   1= 追加   2= 変更   4= 除去   5= 表示                                        
                                                                                
                                                                                
 OPT   経路宛先        サブネット・マスク       ネクスト・ホップ         優先 インターフェース         
                                                                                
      *DFTROUTE        *NONE            172.16.1.254     172.16.1.10             
          
                                                                                
                                                                                
                                                                                
                                                                        終わり  
 F3= 終了        F5= 最新表示   F6= リストの印刷   F11=TYPE OF SERVICE の表示   
 F12= 取り消し   F17= 先頭      F18= 最後                                       
 TCP/IP  経路  は正常に除去された。

(4) ping試験

変更後は、AS400より他のネットワークへのPing試験を忘れずに実施しましょう!

PING '172.22.0.1' [実行]