たそ@ITインフラ初心者

taso@初心者エンジニア

新卒1年目 エンジニアが適当に語るブログてす

Ansibleでルータ設定 #3 設定出力編 part2

お疲れ様です。たそ(@taso_int)です。
来週初任給がもらえるのでワクワクしてます。
初任給で椅子を買いたいですね。
あと親にも何かあげたいです。 何かおススメありますかね。

今回も続きをやっていきたいと思います。
前回の内容について知りたい方はこちらへ

taso-int.hatenablog.com

前回の出来なかったところから行っていきます。

1.構成図

f:id:taso_int:20210523120754j:plain

以前の構成から192.168.1.2→192.168.1.254に変更します。
しかし、AnsiblleホストとSSH接続しており、playbookで変更すると
止まってしまうので手動で設定変更をします。
そこでstartup-configとrunnig-configの設定ファイルを保存して
変更部分を比較するplaybookを書きたいと思います。

2.動作設計

今回のplaybookの動作手順を考えたいと思います。
1.実際にコマンドをそれぞれ実行する。
2.実行結果をファイルで保存をする。 ←(ここまではできた)
3.ファイルを比較する。
4.比較結果をplaybook実行中に表示させる。
5.write memoryをするかを問い合わせる。

2番以降まで出来たので、3番以降を行っていきたいと思います。

3.手順

比較する方法でshellモジュールを使って直接diffするパターンと
diffモジュールをつかう方法があります。
(横地さん教えていただきありがとうございます。)

3-1.shellモジュールver
まずはshellを使って直接diffを行う方法から見てきます。

  tasks:
    - name: show startup
      ios_command:
        commands: show startup-config
      register: result

    - name: diff show 
      debug:
        var: result.stdout_lines

shellモジュールを使ってdiffをAnsiblleホストで直接実行するように指示を出してます。
(ルータ内ではない)
shellモジュールを利用するとなぜかエラー(赤文字)出力がされ
playbookが停止してしまいます。
これはコマンド結果のリターンコードが0以外になって、
shell モジュールがエラーと判定してしまっているとのことです。
この解決策をしてfailed_when:falseを設定することで
常に成功状態にさせる方法を取りました。

またfailed_when: result.rc not in [0, 1]と設定することで、
出力なしが0 出力ありが1 エラーが2と分類できるので、
本来のエラーを漏らさないようになるためこちらの方がいいと思います。

出力方法はdebugモジュールを利用し、var: result.stdout_linesを指定することで、
1行づつ出力されます。

3-2.diffモジュールver
diffモジュールを使用した場合です。
ansible.utils.fact_diff というモジュールを利用して行うことができます。
ただしansible 2.9 や ansible 2.10ではansible.utils というcollectionを
ansible-galaxy collection install ansible.utils でインストールする必要があります。

またshowコマンドで格納した変数を利用しているので、変数を分ける必要があります。
今回は変数を分けてcopyコマンドでファイル出力し、
その変数をdiffに再利用する形を取ります。
(jinja2 のうまい書き方がわからないのです)

  tasks:
    - name: show startup
      ios_command:
        commands: show startup-config | begin version
      register: result1

    - name: file make startupconf
      copy:
        content: "{{ result1.stdout[0] }}" 
        dest: "startconf_{{ inventory_hostname }}"

    - name: show running
      ios_command:
        commands: show running-config | begin version
      register: result2

    - name: file make runningconf
      copy:
        content: "{{ result2.stdout[0] }}" 
        dest: "runconf_{{ inventory_hostname }}"

    - name: diff
      ansible.utils.fact_diff:
        before: "{{ result1 }}"
        after: "{{ result2 }}"

こちらはdiffのモジュールなので出力も見やすく行ってくれます。

f:id:taso_int:20210523171515p:plain

やはり、shellやcommandモジュールは奥の手らしいですね。
(どうやって皆さんモジュール見つけてるんだろうか…)

3-3.保存方法
本来なら確認を取りたいのですが、分岐するのは難しいなと感じました。
そこで処理を一時的に停止させることのできるpauseモジュールがあるとのこと
(金魚の方本当に情報ありがとうございます。)
pauseで確認→OKならenter→そのままplaybookを実行
pauseで確認→NOならctrl+c→playbookを停止終了
pauseよりも上のtaskはconfigを保存してもしなくても行いたいのでこれでいいですね。
debugに入れて表示してもよかったですがnameにいれる荒技をしました。
こんな感じになりました。

    - name: running-configをstartup-configに保存します。 enterで実行 Ctrl+cで停止します
      pause: #enterで下のタスクが実行 ctrl+c後 aで下のタスクを実行せず停止

    - name: write memory
      ios_config:
        save_when: modified
      tags:
        - save

4.確認

最終的にはこのような感じになりました。
shell ver

---
- hosts: ios
  gather_facts: false

  tasks:
    - name: show startup
      ios_command:
        commands: show startup-config | begin version
      register: result

    - name: file make start
      template:
        src: ios_log.j2
        dest: "startconf_{{ inventory_hostname }}"

    - name: show running
      ios_command:
        commands: show running-config | begin version
      register: result

    - name: file make run
      template:
        src: ios_log.j2
        dest: "runconf_{{ inventory_hostname }}"

    - name: diff
      shell: diff -u startconf_{{ inventory_hostname }} runconf_{{ inventory_hostname }}
      register: result
      failed_when: false
      
    - name: diff show 
      debug:
        var: result.stdout_lines

    - name: running-configをstartup-configに保存します。 enterで実行 Ctrl+cで停止します
      pause:
        
    - name: write memory
      ios_config:
        save_when: modified
      tags:
        - save

diff ver

---
- hosts: ios
  gather_facts: false

  tasks:
    - name: show startup
      ios_command:
        commands: show startup-config | begin version
      register: result1

    - name: file make startupconf
      copy:
        content: "{{ result1.stdout[0] }}" 
        dest: "startconf_{{ inventory_hostname }}"

    - name: show running
      ios_command:
        commands: show running-config | begin version
      register: result2

    - name: file make runningconf
      copy:
        content: "{{ result2.stdout[0] }}" 
        dest: "runconf_{{ inventory_hostname }}"

    - name: running-configをstartup-configに保存します。 enterで実行 Ctrl+cで停止します
      pause:

    - name: diff
      ansible.utils.fact_diff:
        before: "{{ result1 }}"
        after: "{{ result2 }}"

設定変更後、試しにshellバージョンでそのまま実行してみます。

f:id:taso_int:20210523222929p:plain

いい感じに出来てます。

ちなみにpauseで停止させるとこんな感じに

f:id:taso_int:20210523223013p:plain

いいですね

以上で完成になります。やったね!

来週は基本情報勉強のためお休みします。
ここまで読んでいただきありがとうございました。

Ansibleでルータ設定 #2 設定出力編 part1

お疲れ様です。たそ(@taso_int)です。
研修期間もそろそろ折り返し地点になりました。
基本情報技術者試験の勉強していますが結構苦戦してます。

今回も続きをやっていきたいと思います。
前回の内容について知りたい方はこちらへ

taso-int.hatenablog.com

1.構成図

f:id:taso_int:20210509162817j:plain

以前の構成から192.168.1.2→192.168.1.254に変更します。
しかし、AnsiblleホストとSSH接続しており、playbookで変更すると
止まってしまうので手動で設定変更をします。(まだ変更してない)
そこでstartup-configとrunnig-configの設定ファイルを保存して
変更部分を比較するplaybookを書きたいと思います。

2.動作設計

今回のplaybookの動作手順を考えたいと思います。
1.実際にコマンドをそれぞれ実行する。
2.実行結果をファイルで保存をする。 ←(ここまではできた)
3.ファイルの調整を行う。(startup-configとrunnig-configに行の修正)
4.ファイルを比較する。
5.比較結果をplaybook実行中に表示させる。
6.write memoryをするかを問い合わせる。

3.手順(完成部分?)

3-1.実際にコマンドをそれぞれ実行する。
コマンドを変数にしたいが別々のファイルで取得したいため
個別でコマンドを記述します。
ios_commandモジュールを利用してshow startup-config等を入力させます。
出力結果をregisterオプションを使ってresultに格納します。

  tasks:
    - name: show startup
      ios_command:
        commands: show startup-config
      register: result

3-2.実行結果をファイルで保存をする
出力をファイルに書き込む方法はcopyモジュール等が存在します。
今回はtemplateモジュールを利用してJinja2 テンプレート
を参照して出力することにしました。

横地さんのブログ参考になりました。

tekunabe.hatenablog.jp

実際のyaml

    - name: file make start
      template:
        src: ios_log.j2  #テンプレート参照名
        dest: "startconf_{{ inventory_hostname }}" #ファイル名

jinja2のテンプレート(ios_log.j2)

{% for out in result.stdout %} #出力結果の表示
{{ inventory_hostname }} #最初の1行目にルータの名前
{{ out }}

{% endfor %}

正直jinja2の書式がイマイチわかってないです。(Pythonなのにわからん)
ちなみにcopy モジュールをつかっても出力できます。

    - name: file make start
      copy:
        continent: "{{ result.stdout[0] }}" 
        dest: "startconf_{{ inventory_hostname }}"

実際のyaml

---
- hosts: ios
  gather_facts: false
  
  tasks:
    - name: show startup
      ios_command:
        commands: show startup-config
      register: result

    - name: file make start
      template:
        src: ios_log.j2
        dest: "startconf_{{ inventory_hostname }}"

    - name: show running
      ios_command:
        commands: show running-config
      register: result

    - name: file make start
      template:
        src: ios_log.j2
        dest: "runconf_{{ inventory_hostname }}"

playbookを実行してみる。
実行前
f:id:taso_int:20210516213329p:plain

実行結果
f:id:taso_int:20210516213706p:plain

しっかりと作成されています。

ファイルも見てみましょう。
f:id:taso_int:20210516220300p:plain

しっかり出来てますね。

4.つまずいている点

showコマンドの出力がバラバラで同じ位置にしたい。
ブログ書きながら解決しました…
show startup-config | begin version って記載すれば行ける。
オプション | begin begin以後に記載した文字列から
始まる行以下の行をすべて返すとのこと。

diffのやり方
diffぽいモジュールがないのでshellコマンドを使う可能性が高め。

stdoutとstdout_liensについて
5でdiff結果を表示したい。stdoutで表示すると改行コードが出て
かなり見づらい状況。
stdout_liensで見やすくなるらしいが試したところエラーを
吐き出してしまい原因がわからない。

次週ここを作成していきたいと思います。
ここまで読んでいただきありがとうございました。

Ansibleでルータ設定 #1 インターフェイス設定編

お疲れ様です。たそ(@taso_int)です。
GWも終わってしまいましたtohoho...
引き続き資格取得に向けて勉強したいです。
取ってほしいと言われた資格は残り基本情報のみで、
それを取ったらAzure資格を少し取りたいです。

前回環境構築をしたので、今回は実際に何か設定したいと思います。
前回の内容について知りたい方はこちらへ

taso-int.hatenablog.com

今回はこれの続きです。 ルータに新しいインターフェイスを追加したいと思います。

1.構成図

f:id:taso_int:20210509162817j:plain

以前の構成図からR1にf1/0とLo0を設定します。
次からアドレス一覧も付けたいと思います。

2. 目標

この構成の完成を目指す。
Ansibleで設定して確認が出来ればOK
自動化を理解するためには手動設定も大切なので手動設定も行う。

3-1. 手順(手動)

f1/0の設定
ルータに入り、以下のように設定 R1#conf t
R1(config)#
R1(config)#int f0/1/0
R1(config-if)#ip add 192.168.2.254 255.255.255.0
R1(config-if)#no shut

Lo0の設定
ルータに入り、以下のように設定
R1#conf t
R1(config)#
R1(config)#int Lo0
R1(config-if)#ip add 192.168.255.1 255.255.255.255

ループバックインターフェイスにno shutは不要です。

設定確認
R1#show run
(抜粋)
interface Loopback0
ip address 192.168.255.1 255.255.255.255

interface FastEthernet0/1/0
ip address 192.168.2.254 255.255.255.0
duplex auto
speed auto

3-2. 手順(Ansible)

手動設定ができたので
次はAnsibleでこの設定をしたいと思います。
Ansibleではplaybookを実行することで自動的に設定を行うことが出来ます。

1.インターフェイスの有効化
まずはインターフェイスの有効化をします。

  tasks:
    - name: Ethernet ena
      ios_interfaces:
        config:
          - name: FastEthernet0/0
            enabled: False
          - name: FastEthernet0/1
            enabled: True
          - name: FastEthernet0/1/0
            enabled: True
          - name: Loopback0
            enabled: True

インターフェイスの有効化はios_interfaceモジュールを使用します。
enabledでTrueを設定すると有効化(手動のno shutと同じ)
enabledでFalesを設定すると無効化(手動のshutと同じ)
ループバックインターフェイスについてですが手動設定の場合は
no shutが不要でしたが、Ansibleではここで設定をしないと有効化されませんでした。

2.アドレスの割り当て
インターフェイスの有効化が出来たのでIPアドレスを設定します。

    - name: add ip
      ios_l3_interfaces:
        config:
        - name: FastEthernet0/1/0
          ipv4: 
            - address: 192.168.2.254/24
        - name: Loopback0
          ipv4:
            - address: 192.168.255.1/32

アドレスの割り当てはios_l3_interfacesモジュールを使用します。
ipv4などipv6などの設定が可能となっております。

3.設定を保存
このままだとルータの電源を切ってしまうと設定が反映されないので、
設定を反映するようにします。(手動のwrite memory)

    - name: write memory
      ios_config:
        save_when: modified
      tags:
        - save

ios_configモジュールにsave_whenオプションがあり、
これを利用することで、設定が保存できます。
save_whenオプションの値は色々ありますがstartup-configと running-config に
差分がある場合に設定を保存してくれるmodifiedを値として設定しました。

4.実行
最終的にこんな感じのyamlになりました。

---
- hosts: Router1
  gather_facts: False
  tasks:
    - name: Ethernet ena
      ios_interfaces:
        config:
          - name: FastEthernet0/0
            enabled: False
          - name: FastEthernet0/1
            enabled: True
          - name: FastEthernet0/1/0
            enabled: True
          - name: Loopback0
            enabled: True
    - name: add ip
      ios_l3_interfaces:
        config:
        - name: FastEthernet0/1/0
          ipv4: 
            - address: 192.168.2.254/24
        - name: Loopback0
          ipv4:
            - address: 192.168.255.1/32
    - name: write memory
      ios_config:
        save_when: modified
      tags:
        - save

実行はansible-playbook -i inventory routercon.yml で実行できます。
実行様子
f:id:taso_int:20210509205631p:plain
上手く実行されて設定が反映されているのでchangeになっています。

以前も使ったios_factsモジュールを使って確認したいと思います。
実行はansible -i inventory ios -m ios_facts

f:id:taso_int:20210509205741p:plain

ちゃんと設定されてますね。

最後に

無事Ansibleでルータに設定を追加することが出来ました。
来週はインターフェイスの設定変更をしていきたいと思います。
ここまで読んでいただきありがとうございました。

Python3エンジニア認定試験に合格しました。 勉強法について

お疲れ様です。たそ(@taso_int)です。
今日Python3エンジニア認定試験に無事合格しました。

cbt.odyssey-com.co.jp

今回はその報告と勉強法について書きたいと思います。

実際これ受かってもPython全く分かりません。(コード書けません)
ですがPythonについて知ることができるのはいいことかなと思います。

試験に受かるための勉強法について

試験に受かるための勉強法なので正直おすすめしないです。 それでも良い方は参考にしていただければ幸いです。

1.教材について

教材はPython チュートリアル 第3版を使用しましたが、
Webでも同じ内容のチュートリアルがあるのでそちらを教材代わりにしても大丈夫です。 (https://t.co/DYAEpP4FQT)

↑の教材は初心者に分かりにくいので、
Python全く知らんという人は別の本も購入するといいかなと

2.試験範囲の切り捨て

Python3エンジニア認定基礎試験は範囲が決められてて
出題割合も公開されています。

なのでページが多い=よく出るわけではないです。
私はオレンジの章のみ勉強しました。雑ですいません。 f:id:taso_int:20210508210211p:plain
これ以外の範囲は基本勉強しないです。
余裕があれば読むといいと思います。

3.勉強法 step1

これでやるべき章がわかったので早速始めましょう。
今回は読むことを意識しました。 範囲の場所を読んでいきましょう。

1~2周目 わからなくていいのでとりあえず読む

3周目 実際にpythonで試してみる(vscodeUbuntuアプリ、Google Colaboratory等)

完全に理解する必要は全くありません。
こんなもんなんだなぐらいでいいかと

4.勉強法 step2 

ここまで出来たら模擬試験を受けてみましょう。
無料で受けれる模擬試験は2つあります。

exam.diveintocode.jp

study.prime-strategy.co.jp

おすすめは1個目のサイトですね。
理由としましては難易度が試験と同じぐらいなのと、
基本的に両サイト解説がないのですが、問題文を検索にかけると
解説が出やすい印象があるからです。
不安な方は両方やるといいと思います。
模擬試験をやった後は間違った問題についてどうしてこれが正解なのか
参考書を見るなり、検索するなりするのがいいと思います。
本があればその場所にマークするといいかなと
問題がランダムなので3回ぐらい受験するといいと思います。

5.勉強法 step3

ふたたび範囲の場所を読んでいきましょう。(1~2周)
本があれば目印が付いているはずなので、
再認識できると思います。

6.勉強法 step4

最後の仕上げで再び模擬試験を受けましょう。
模擬試験で9割を3回連続でとれるまで出来るとかなりいいかと
これを行うことで本来捨ててたはずの範囲も補うことで出来ます。
範囲にリソースを割く+範囲外を模擬試験で補う =合格ラインにいける
これでかなりの確立で合格できると思われます。
以上で勉強法の紹介を終わりたいと思います。

今後の資格予定と最後に

基本情報技術者試験を6月上旬に取りたいと思います。(CBT方式になったので受けれる)

明日Ansible関連のブログを書きたいと思います。
ここまで読んでいただきありがとうございました。

Ansibleでルータをさわる 環境構築編

こんばんは たそ(@taso_int)です。

入社してから1ヶ月経ちました。時間たつのが早い…

GWの予定は当然ありません。資格の勉強でもしようかと思います。

 

今日は久しぶりに技術的な記事を書きたいなと

私はAnsibleでサーバの自動構築(レベル低)はやったことあるのですが、

Ansibleでネットワーク機器を触ったことがないのでやってみたいなと思いました。

今日はそのための環境構築として書きたいと思います。

 

1.構成図

f:id:taso_int:20210502233511j:plain

 

本当にシンプルな構成で申し訳ないです。本当はスイッチ購入して、

ホストとAnsibleを分けたかったのですが、スイッチ持ってないですよね。

おすすめの中古スイッチがあれば教えてほしいです。

 

2.目標

まずはこの構成の完成を目指していきたいと思います。

Ansibleはインストール済みになってます。

ルータへのSSH接続とAnsibleのモジュールが使えればOKとします。

 

3.手順

3-1ルータへのSSH有効化

まずはルータへのSSHをできるようにコンソールケーブルを使用して、

設定を行いたいと思います。

 

①ユーザー認証の設定

R1(config)#username taso privilege 15 secret cisco

 

R1(config)#line vty 0 4

R1(config-line)#login local ←ユーザ名とパスワードを認証の際に使用するように

 

ドメイン名作成

R1(config)#hostname R1 (←設定している)

R1(config)#ip domain name taso.com

 

RSA鍵の作成

R1(config)#crypto key generate rsa ←この後に1024を入力

 

④セキュリティ的に

R1(config)#line vty 0 4

R1(config-line)#trunsport input ssh

 

※事前に特権EXECモードへ移行するためにパスワード設定はしておくこと

enable passwordコマンドかenable secretコマンド

 

参考URL 

Ciscoルータ - SSHの設定

 

3-2ルータのアドレス設定

R1(config)#int f0/1

R1(config-if)#ip add 192.168.1.2 255.255.255.0

R1(config-if)#no shut ←ポートの有効化

3-3PC側の設定 

ホストのアドレスを192.168.1.1に設定

SSHでログインできるかを確認する。

SSHにログインができなかった場合、

手順の振り返り、エラーの確認

今回はSSHの鍵が対応していなかったためエラーを起こしたらしい

/etc/ssh/ssh_configの設定を確認して無事SSH成功

3-4Ansibleの設定

ディレクトリ構成

Ansible
├── group_vars
│   └── ios.yml
└── inventory

 

inventoryファイルの作成。

ルータで設定したf0/1のipアドレスを記入する。

[ios

R1 ansible_hosts=192.168.1.2

 

group_vars/ios.ymlファイルの作成

inventoryファイルで[ios]のグループを定義したので、そのios内の変数等を

しまうためのファイルを作成

---

ansible_network_os: ios

ansible_connection: network_cli

anisble_user: taso

ansible_password: cisco

#特権

ansible_become_password: cisco

ansible_become: yes

基本設定はこれで終わりですかね。

ためしにpingモジュールを使って疎通確認してみます。

ansible -i inventory ios -m ping

Router1 | SUCCESS => {
"changed": false,
"ping": "pong"
}

 

またciscoのシステム情報やインターフェイス情報を入手すること

ができるios_factsモジュールを使ってみたいと思います。

一部抜粋

f:id:taso_int:20210503190151p:plain

ちゃんと取得できていますね。

 

今回はこれで終わりにします。

次週は何かの設定をAnsibleで入れてみたいと思います。 

あとコマンドとファイルの記述が分かりづらいので

次はコマンドプロンプト風に出来たらいいなと思います。

 

ここまで読んでいただきありがとうございました

今週の本 ~いちばんやさしいGit入門~

お疲れ様です。たそ(@taso_int)です。

あと一週間で社会人一ヶ月ですよ。マジで時間立つの早い。

今研修は技術研修をやってます。月曜日からNWかも

土曜日にLPIC102受験して合格出来ました。

LPIC101と102を合体してLPIC1ですね

 5月8日にpython基礎認定試験を受ける予定です。

GWの予定は察してください(逆にあるんですか?)

 

今回も本紹介となっております。(毎度すいません)

次はなんか技術的なものを書こう。(CiscoルータとAnsible使おうかな)

 

今回紹介するのはいちばんやさしいGit入門教室です。

こちら(電子書籍

 

いちばんやさしい Git 入門教室

いちばんやさしい Git 入門教室

 

 

こちらが書籍

 

チーム開発で使われているGitですね。

卒論でAnsibleを触った時にGithubをよく見てたんですが、

イマイチ使い方が分かりませんでした。

(GithubとGitは違うものですがGitの技術を利用してるサービスです。)

 

最近技術書でもGithubソースコードを紹介していることがあります。

そこでGitおよびGithubを利用したいなと

 

Git勉強したいんだけどどうすればいいかなと思ったところ

イムリーでインフラエンジニアBooksのイベントでGit本の紹介をしていたので、

この本を購入しました。

 インフラエンジニアBooksの詳細はこちら

infra-eng-books.connpass.com

 

さて本の感想を話したいと思います。

この本の感想を簡潔に述べますと、

入門者に向けてGitを最低限"使えるようになる"ための本

この本のいいところはGitを設計・管理・運用・利用の利用にフォーカス

した内容になっています。

Gitの動作、使い方、よくあるトラブルの対処といったところをしっかり

書かれており、内容も分かりやすいです。

Gitはそもそも共同作業を円滑に行うためのサービスです。

デザイナーやプログラマーが0からGitを設計構築する場面はほとんどなく、

基本的には開発リーダーやGitの管理者がいるわけです。

なのでデザイナー、プログラマーGitの全てを知る必要がないのです。

この本はそういったGitを利用する人が読むために向けた本だと思いました。

 

またいちばんやさしいと言われているように、図解、イラスト、キャプチャ

が多く、とても読みやすいと思いました。

ぼっちで動作確認ができる実際例を出しているのも〇

 

これからGitを使う人や知りたい人にオススメしたい。

 

卒論前にGitを知っていれば利用したかった…

これからはぼっちGitを利用したいと思います。

おまけにVScodeでのGitの操作方法も書かれてあります。(これを導入する予定)

 

ここまで読んでいただきありがとうございました。

 

 

今週の本 ~ネットワーク技術&設計入門~

お疲れ様です。たそ(@taso_int)です。

新卒1週間お疲れ様でした。明日からも頑張ります。

基本研修は在宅です。(個人的には在宅で助かってる)

早く社員の人に顔を覚えられたいですね。

 

今日は本の感想でも書こうかなと前回はSoftware Designについて書いたんですが、

Twitterの方に新卒のおすすめの本を教えて頂いたのでそれを記事にします。

教えていただきありがとうございます。

 

その本はインフラ/ネットワークエンジニアのためのネットワーク技術&設計入門です。

 これですね。

 

 

私の専門でこの本を教科書として使っており、たまたま持っていたので早速手に取って読んでみました。

授業でも読んだのですが、チンプンカンプンでしたね。(まだCCNAも取っていなかったので)

 

この本の感想を簡単に言うと

自分の理解度把握勉強した技術の生かした全般な技術解説

この3点かなと思います。

この3点を説明して、感想ということにします。

 

自分の理解度把握

この本はネットワークおよびインフラの設計における物理、論理、セキュリティ、負荷分散、管理といった基礎の内容を網羅しています。(CCNAあれば読める)

昔よりもスラスラ読めることで、「あ、俺前よりわかってるやん」ってなります。

逆にわからないところもあるので(負荷分散とか特に)そういったところは軽く読むだけでもこういった技術があるんだへ―みたいな流しもいいかと思います。

まだ私は実務経験がないので半年後や1年後にもう一回読むと「めちゃめちゃわかるやん俺」みたいになってると思います。

 

勉強した技術の生かした

資格取った人なら特に私みたいな未経験は思うんですが、CCNA取ってもこれどうやって実務に使われてるのみたいな感じになるんですよ。

そういったCCNA取ったけどイメージが分かんないって人にこの本はめちゃくちゃいいのかなと思いました。

冗長技術、VLAN、TCPとか

 

全般な技術解説

前に述べたように、それなりの技術解説も乗っているため知識にもなり、復習にもなると思います。

セキュリティに関しては専門で2年間も習ったことをわかりやすくまとめて書かれていたので、かなりコスパがいいなと思いました。

 

以上で感想になります。

また1年後ぐらいにこの本を読むとだいぶ理解が進んでると思います。

レベルとしてはCCNAレベルなので、CCNA受かった方はぜひ読んでみるといいと思います。(同期にすすめるか)

 

来週も研修頑張ろうと思います。4月中にLPIC102取りたいっすね。

後いいイスが欲しい。腰が死ぬ(笑)

 

ここまで読んでいただきありがとうございました。