文系seの備忘録

Excelの改行でひたすらスペースを打っていた機械音痴の文系seが日々の備忘録を綴る。

LPICレベル1 申し込みました

相変わらずSEやってます、もう5年目になりました。
このブログを作成した当時は新人だったのかな?
プログラミングなんて全くわからないどころか、パソコンの操作すら十分にできない状態で
この業界に入ったわけですが、それでもなんとかやってこれました。


とはいえ、自主学習は欠かせません。
やらないとすぐ忘れます。
センスなんて微塵もないので、日々慣らしておかねばなりません。


最近業務でlinuxを触る機会があったんですが、しばらくブランクがあったせいで
簡単なコマンドすら忘れていました。


なので、いい機会だと思って資格取得を目標にちゃんと勉強してみようと思います。


(以下、LPI-Japanより引用)

LPICレベル1

サーバの
構築、運用・保守

実務で必要なLinuxの基本操作とシステム管理が行えるエンジニアであることを証明できます。

該当試験101試験 / 102試験
LPICレベル1に認定されるためには101試験と102試験の両方に合格する必要があります。

勉強期間目安1か月~3か月程度
(※初めての方の場合)


レベル1のなかでも、101と102に分かれているんですね。
知らなかった~。
どっちも取らないとレベル1取得とはならないようです。
しかもそれぞれ受験料が15000円。たっか。

以前受けたjavaの資格も確か3万くらいしたっけ。
samooooon.hatenablog.com

IT系の資格試験の受験料、高すぎです。





まずは基礎的なところからやってみます。
今月、来月と忙しいので受験は4月にしました。



申し込みも済んだので、あとは勉強するのみ!




色々と調べてみたところ、参考書はアズキ本と言われるえんじ色の表紙のやつ

Linux教科書 LPICレベル1 Version4.0対応

Linux教科書 LPICレベル1 Version4.0対応

これはかなり詳しいらしいです。
基礎からしっかりと、徹底的に学びたい人向け。

一週間で基礎が学べるってやつ

1週間でLPICの基礎が学べる本 第2版 (徹底攻略)

1週間でLPICの基礎が学べる本 第2版 (徹底攻略)

これは初心者でもとっつきやすい様子。

そしてこちらがけっこうおすすめされている人が多かったです。

Linux教科書 LPICレベル1 スピードマスター問題集 Version4.0対応

Linux教科書 LPICレベル1 スピードマスター問題集 Version4.0対応

載っている問題が、実際の試験内容と近いようで、試験のためには一冊あるとよさそう。



一週間で学べるやつと、スピードマスターを買ってみようかな。

2017秋期 応用情報技術者試験

数年前に勉強を始めたもののしばらく放置してた応用情報。。。
昨年の秋に受けましたが、結果は

f:id:ron623:20180210102044j:plain

不合格orz


午後問題で撃沈です。

自己採点したときから分かってたけど!



今年の春はどうしても外せない予定があり受けられないので、秋に受ける予定です。
1年越しの試験となってしまいますが、忘れてしまわぬよう日々勉強しておきたいと思います。

いつも忘れるlinuxコマンド一覧

■ ファイル検索
$ locate mydoc.txt

$ find / -name mydoc.txt

※ findとlocateの違い
locateはlinuxに作られるファイルやディレクトリ名の一覧を格納したDBから検索してくるので高速。
findは日時とかサイズとか正規表現とかいろんなオプションがつけられる。



■ ファイル、ディレクトリ名の変更

$ mv oldname newname

■ 権限付与
# chown hogeuser file1

フォルダの所有権の変更は以下
# chown -R hogeuser フォルダのパス

心の中でチョウンって読んでしまうこのコマンド。。



■ 現在のディレクトリを表示
$ pwd


■ 現在ログインしているユーザーのパスワードでsuコマンドを実行する
$ sudo su

色んなツールまとめ(随時更新)

日々の作業でよく使うツールをまとめておきます。



■ オフィス系

サクラエディタ
http://sakura-editor.sourceforge.net/download.html
テキストエディタgrep機能というファイルをまたいだ検索機能が便利。

検索したいディレクトリ、単語などを入れると
f:id:ron623:20160928160903p:plain

以下のように検索結果が出てくる。
f:id:ron623:20160928161144p:plain
詳細を見たい検索結果をダブルクリックすると、そのファイルの該当箇所にアクセスすることが出来る。

あと、色をカスタムできる。
f:id:ron623:20160928160904p:plain


・Cassava Editor
http://forest.watch.impress.co.jp/library/software/cassavaedit/
CSVエディター

openoffice
http://forest.watch.impress.co.jp/library/software/openoffice/
Microsoft Office」互換の無料のオフィス統合環境。
表計算、ワード、パワポと一通りそろっている。でもマイクロソフトのファイルを開くと互換性があるとはいえ
たまに壊れるので要バックアップ。

・職印くん
http://www.vector.co.jp/soft/win95/util/se171969.html
電子印鑑作成ツール



■ 接続ツール

・Tera Term(テラターム)
Windowsから他の端末に接続するときに使うソフト。
寺西さんがつくったからテラターム
http://forest.watch.impress.co.jp/library/software/utf8teraterm/




■プログラミング

sql developer
http://www.oracle.com/technetwork/jp/developer-tools/sql-developer/downloads/index.html
GUIoracleを操作できるツール。

eclipse
http://mergedoc.osdn.jp/
開発環境。java以外の他言語の開発にも使えます。
宣言に飛んだり、検索機能が充実していたり、インデントを一発で調整できたりと便利。

インストーラーの解凍にlhaplusを使うと中身が壊れることがあるので
その際は7-Zipを使用してみてください。
http://forest.watch.impress.co.jp/library/software/7zip/

WinMerge
http://forest.watch.impress.co.jp/library/software/winmerge/
ファイル比較。




仮想マシン


VirtualBox
https://www.virtualbox.org/wiki/Downloads

VMware
http://www.vmware.com/jp/products/player.html
ダウンロード > 無償製品 > Workstation Player

インストーラーをポチポチ押してくだけで仮想環境が構築できて簡単。
f:id:ron623:20160928161856p:plain

jenkinsからの実行時、意図したrubyのバージョンで実行されない(最新バージョンで実行されてしまう)


■ 問題
実行するノードに、指定しているrubyよりも新しいバージョンが入っている場合そのバージョンで実行されてしまう。



まず、実行するノードに直接はいって状態の確認。


C:\Users\guest>PATH
C:\Windows\system32;・・・(略)・・・C:\Ruby22-x64\bin;C:\Ruby23-x64\bin;

⇒ このマシンにはRuby2.3も入っている。


Rubyのバージョンは

C:\Users\guest>ruby -v
ruby 2.2.4p230 (2015-12-16 revision 53155)

2.2が実行されるように設定されている。
なので、マシンから直接たたけば2.2で実行される。


しかし、jenkinsでビルドすると2.3で実行されてしまう・・・・。




■ 原因

はっきりとは特定できてない。
けど、、jenkins > ノード > 環境変数にRuby2.3のパスもばっちり書かれていてパスが通った状態になっているので
これが原因で最新を見て実行されているのかな。。



■ 対策

ビルドするジョブの jenkinsの設定>スクリプト で実行したいrubyのバージョン以外を除外したパスをset path ~で設定する

set path=C:\Windows\system32;・・・(略)・・・C:\Ruby22-x64\bin;

「C:\Ruby23-x64\bin;」を除外してわざわざパスが通らないようにしてから実行するという対策をとりました。

これで2.2で動くようになりました。




・・・こんなことしなくても解決する方法があるはずですorz

WebdriverからFirefox起動時に"Unable to connect to host"エラー


最新のFirefoxに更新したら「Unable to connect to host」エラーが出た。



■ 原因

WebDriverのバージョンがFirefoxのバージョンに対応していないのが原因。



■ 対応

1.Firefoxの自動バージョンアップは設定で無効にしておく


2.FireFoxESR版を使用する

ESR版というのは「Extended Support Release」という法人向けの延長サポート版で、
最新機能が反映されるのは通常版に投入されてから数開発サイクル後になるが
安全性やセキュリティ面は考慮されているもの。

以下からダウンロードする

Web ブラウザ Mozilla Firefox — 各国語版の Firefox Extended Support Release をダウンロード — Mozilla


法人向けって書いてあるけど個人でダウンロードしても問題ありません。


最新である必要がなければESR版をおすすめします。

公開鍵方式でパスワードなしのssh接続を行う

最近linuxをちょっと触る機会があったので、そのとき毎回パスワード入れてアクセスするの面倒だなぁ・・と思っていたら
パスワードなしでssh接続が出来るというのが分かったのでやってみました。




ssh接続とは

Secure Shell(セキュアシェル)の略称で、リモートコンピュータと通信するためのプロトコル
Windowsでいう「リモートデスクトップ」と同じ役割です。
ssh接続での認証方式には、パスワード認証と公開鍵認証があります。
デフォルトではパスワード認証になっています。


■ パスワード認証の場合

[user1@clientserver ~]$ ssh tomcat@192.168.137.127
 (もしくは、[user1@clientserver ~]$ ssh tomcat@hostserver.sample-net.com としてもOK)
と入れると
tomcat@hostserver.sample-net.com's password:
パスワードを聞かれます。

これがおなじみのパスワード認証です。



■ 公開鍵認証の場合

あらかじめ、接続元でカギを作っておいて、そのカギで通信します。

パスワード認証だと適当にパスワードを入れて中に入られてしまう危険があります。
誰がサーバーに接続しているかは、「/var/log/secure」のログを見ると分かります。

Sep 5 16:25:40 aaaserver login[8276]: FAILED LOGIN SESSION FROM (null) FOR sakurai,Authentication failure
Sep 5 16:26:40 aaaserver login[8276]: FAILED LOGIN SESSION FROM (null) FOR sakurai,Authentication failure
Sep 5 16:26:59 aaaserver login[8276]: FAILED LOGIN SESSION FROM (null) FOR sakurai,Authentication failure

こんなのがずらっと並んでると思います。
上記では"sakurai"というユーザーが何度もパスワードを入れて失敗しているのが分かります。
外部からのアクセスかもしれませんし、社内であれば予想されるパスワードを入れて悪用するといったことも考えられます。


公開鍵方式の場合は、接続元で秘密鍵と公開鍵を作成し、接続先には公開鍵だけ渡します。
接続先は渡された公開鍵で暗号化し、接続元に送ります。
これを秘密鍵で復号化します。

公開鍵暗号方式の説明はこのリンクの図が分かりやすいです)
viral-community.com



***************************


今回はこの公開鍵方式を利用して、ssh接続をパスワード入力なしで行ったときのつまずいた箇所を書き留めておきます。
(公開鍵の作成方法はネットを見れば沢山情報があるかと思うので割愛します)




・気を付けたいこと(超初心者向け)



■ 接続するユーザーで鍵を作り、接続されるユーザーに鍵を登録する

 私が見たネットの説明だと「root権限で鍵を作る」と書いてありました。
 何も考えず鵜呑みにしてrootで作ったら失敗しました。

 接続される側の/root/.ssh/authorized_keysを確認すると分かりますが
 
 ssh-rsa xxxABC9876564321・・・・ root@sampleserver
 ssh-rsa xxxZYX1234567890・・・・ ninomiya@sampleserver
 
 といったように、ユーザーごとに公開鍵の情報が登録されているためです。
 
 公開鍵を作ったのにまだパスワードを聞かれるぞ・・・となったら、
 ログインしようとしているユーザーの「/home/ユーザー/.ssh以下を確認し、id_rsa.pub(公開鍵)
 が存在しているか確認してください。



■ 別のツールから実行する場合、PasswordAuthenticationがyesになっていることを確認する

SSH pluginを利用してjenkinsからリモートサーバーのコマンドを実行するように設定した。
そしたら以下のエラーが発生


[SSH] Exception:Auth fail
com.jcraft.jsch.JSchException: Auth fail
at com.jcraft.jsch.Session.connect(Session.java:452)
at com.jcraft.jsch.Session.connect(Session.java:150)
at org.jvnet.hudson.plugins.SSHSite.createSession(SSHSite.java:141)
at org.jvnet.hudson.plugins.SSHSite.executeCommand(SSHSite.java:151)
at org.jvnet.hudson.plugins.SSHBuilder.perform(SSHBuilder.java:60)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:782)
at hudson.model.Build$BuildExecution.build(Build.java:205)
at hudson.model.Build$BuildExecution.doRun(Build.java:162)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
at hudson.model.Run.execute(Run.java:1738)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:410)
Build step 'Execute shell script on remote host using ssh' marked build as failure


認証に失敗。。。
/etc/ssh/sshd_config の PasswordAuthentication がnoになってました。

参考:PowerVM クラウド・プロバイダーからのエクスポートの状況が「Auth fail」になる
http://www.ibm.com/support/knowledgecenter/ja/SSGRP3_2.1.0/doc/ICON/topics/tsicn_authfail.html


「PasswordAuthentication」は冒頭に書いたパスワード認証のことなので、これはyesにしておいたほうが良いと思います。




・・と、色々と躓きましたが公開鍵を使うとパスワードなしでssh接続ができて、セキュリティ的にも、操作的にもメリットが沢山あります。


これでパスなし接続が出来るようになりました!ばんざい。