「Ansible Night in Osaka 2019.05」 に参加してきました

f:id:toshis0307:20190602164118p:plain

5/31に「Ansible Night in Osaka 2019.05」が開催されました。
参加したので、レポートを書きたいと思います。

目次

Ansible Night とは

構成管理ツールである Ansible のユーザー会です。
connpassで3ヶ月に1回くらいの頻度で開催されています。

ansible-users.connpass.com

Ansible Night以外に、Ansibleもくもく会(ハンズオン形式)や、Slackなどの活動を行っています。

Slackはこちら:http://bit.ly/slack-ansiblejp

「Ansible Night in Osaka 2019.05」 参加レポート

簡単ですが、参加レポートを書きます。

オープニング

@fideleruuth さんから、ユーザー会の紹介など行われました。

  • ユーザー会のメンバー数は、5/30時点で3412人
  • 最近の活動報告

リモート参加も可能。運営、企画などをサポートしてくれる方、募集中です。

Ansible 2.8 アップデート @akira6592 さん

www.slideshare.net

  • Ansible 2.8 の全変更の中から、一部を紹介
  • 7月 JANOG@神戸に登壇します 

仕様変更

  • 【便利】Python Interpreter Discovery
    • RHEL8など、Pythonのパスを特定して実行できる
  • 【地味に便利】PLAY RECAPにskippded、rescued、Ignoredが追加された
  • 【地味に便利】retry fileの生成がデフォルトで無効に
  • 【ちょっと注意】--su/--sudo--becomeに統一
  • 【地味に便利】jinja2でnow()取得可能に
  • 【ちょっと注意】register変数名等でテンプレートが使用不可になった、警告がでるが、続いちゃう
  • 【ちょっと注意】paramikoが同梱されなくなる
    • 内部でparamikoを使用しているnetwork moduleがある。この場合は手動でpip install paramikoが必要
  • 【便利】WindowsホストへのSSH接続サポート
  • 【ちょっと注意】グループ名に使用できる文字の厳格化。数字始まりや、ハイフンなどの記号は不正扱いにされる

新規モジュール

Ansible 2.7 2078個 → Ansible 2.8 2832個

  • read_csvCSVファイルをリストやディクショナリとして読み込む
  • *_bgpモジュール
  • クラウド系モジュール:Alibaba、podmanなどは新規追加
  • Porting Guide(移行ガイド):Updateの度に書かれている、おすすめ

質問

  • NativeのSSHとWSLのSSH、どちらを使用するのか?
    • NativeのSSH、ひよこ大佐の資料参照

speakerdeck.com

普段から触り、情報収集を行っているからこそのアウトプットだと感じました。
多くのアップデートの中から、利用者側の視点で要約されているため、
今後2.8以降を触る際、スライドを参照することになりそうです。

Happy Windows Automation with Ansible @aabbss757 さん

www.slideshare.net

AnsibleとWindowsの歴史

  • Windows対応は1.7から、2.8で88 module、徐々に増えている

Windowsのちょっと大変なとこ

  • RDP接続はお手軽さ ×
  • ログイン時の長さ(ようこそ、みたいな画面)
  • Windows Updateの適用にはそこそこ時間がかかる
  • 設定変更手段が多い(GUI、OSコマンド、PowerShell、レポジトリ、グループポリシー)

人それぞれ手順が違うと、後から追いにくい
手順(設計)の標準化 → Ansibleで自動化

更に大変なのは、
Excel手順書(Excelスクショ職人)
Uncomfortable → やめよう

Ansibleで実現可能なWindows自動化

大変だったこと、ハマったこと、良かったこと

  • win_packageモジュール
    • 冪等性担保のためにProduct(GUID)の指定が必要
      • .msiファイルの場合は指定不要
      • 一旦インストールしてみないとわからない
  • win_chocolatey(チョコラティ、チョコレーティ)
    • Linuxに比べてパッケージ管理機能は貧弱
    • インストールのみではなく、アップデートできる
    • インターネット環境が必要(proxy環境の場合は注意)
  • win_regeditバグ
    • Issue投げたら8日で修正された
  • wind_updateバグ
    • state: searchedにしたのに、Updateが適用された
      • 2.3.2で解消済

良かったこと

  • Windows Updateが楽になった
    • win_updatesの実行結果をresisterで取得、debugで表示できる
    • 作業をAnsibleに任せて、他の業務ができる
  • 初期構築:3~4時間 → 15分くらい
    • Excelスクショ職人を卒業(!)

Ansible 2.8 Update

  • 16 module増えた
    • Diskのパーティション作成、フォーマットができるようになった
      • これまではPowerShellで頑張っていた
      • ただし、ディスクの初期化はできないので、PowerShellで実行

質問

  • Local Group Policy編集はどうしている?
    • レジストリを編集するしかないが、GUIに紐付かないのであきらめた
  • Drive Letterはどうしてる?
    • パラメータで指定できる

Ansible界隈では貴重なWindowsの実利用例だと思います。
苦労話も多く、今後Windowsを触る人の役に立つ発表だと感じました。
また、SSH話は個人的に参考になりました。
こちらでも可能だったら使ってみようと思います。

LT:Ansibleやらかし話2 m.shika さん

今回は、「jinja2に悩まされた話」

  • きっかけは、ユーザー管理をAnsibleでやろうとした時
  • vars配下のmain.ymllogin_usersを定義
    • jinja2の手前にスペースを入れていた
    • List型を期待していたので、実行するとStr型になっており、失敗
  • jinja2を複数行で記載していて、インデント入れていたのが影響
    • {% ~ %}{%- ~ -%}へ変更すると解決

参考 qiita.com

実際に使っていると苦労することは多いですが、隠さず正直ベースで発表されているのが有り難いなと思います。
同じところでハマる可能性があるので、頭の片隅…では忘れてしまうので、ブログに残すことで今後の参考にしたいと思います。

LT:もっと使える !? Ansible kobayashiyosh さん

  • Ansibleは便利、基盤構築や運用が楽になった
    • ただ、社内ITの構築や運用に閉じてて良いのか?
  • IT以外の領域でも利用できるのでは?
    • Ansibleの特徴は「冪等性」・・・誰が実施しても結果は同じ
      • オフィス・フロア環境設定、とか
      • 製造ラインの初期設定、とか
      • イベント会場の機材設定・操作、とか

最近では組み込みのOSを利用して、制御している場合がある

  • 組み込みWindowsだったり、Linuxだったり
    • SSHログインしたら、Ansibleで制御できるのでは?

Ansibleを紹介しても、情報システム部門しかメリット無いよね、という話
Ansibleをもっともっと広げたい!
ITだけでなく、もっともっと領域が広げれるのは?と思っている

インフラばかりやっていて、その発想はなかったな…というのが感想です。
組み込みタイプにWindows or Linuxが入っている事例はあるので、活かせる機会はあるよな、と感じています。

Ansibleカタリバ!

新企画です。下記の流れで進めていきました。

  • 班分け(Ansible… おいしいの?、チョットワカル、バリバリ使ってる)
  • 自己紹介(1人、1分くらい)
  • チームテーマ 15分くらい(班ごとに体験談や、突っ込んだ話とか)
  • 共有:各班5分くらい

私はチョットワカル班に参加しました。主な話は、

  • JenkinsでAnsible実行話
  • DNSインフラのUpdate自動化話
  • サーバ、ネットワークエンジニアの壁
    • Windowsで実行できないかという話。Linuxサーバ用意の敷居が高い
    • viできない、YAMLわからない話

などなど。各メンバー触ってきた人が中心で、経験話が多かったです。
こういう話はAnsible飯で会話することが多かった印象ですが、
Ansible Nightで会話できたという点は有意義と感じました。

Ansible飯

Ansible Night後は恒例のAnsible飯(懇親会)が開催されました。
参加者は20人程度と、多くの方が参加されました。

  • 普段の情報収集どうされているか
  • RHEL8をはじめとして、日本語の翻訳頑張っていらっしゃる話
  • 各メンバーの取り組み紹介など
  • Ansibleユーザー会や、Red Hat Tech Nightなど、Red Hatさんの取り組みについて

他にも色々会話しましたが、大変有意義で、勉強になりました。

最後に

Ansible Nightが大阪で開催されましたが、名古屋や東京から参加して発表を行って頂くなど、Ansible熱の高さを感じました。
開催&飲み物をご提供頂いたRed Hatさん、ユーザー会の皆様、そして会場をご提供頂いたGMOホスコンさんに感謝致します。

f:id:toshis0307:20190603012851j:plain

「DNSがよくわかる教科書」を読みました

はじめに

JPRSさんがDNSの本を出版したということで、読んでみました。

きっかけ

Twitterでフォローしている人達が読んだ感想を見たところ、良さそう・正確という話だったので、私も読んでみようと思いました。

本を読めずズルズルと来てしましましたが、GWに時間があったので読んでみました。
以下、思ったことなど書いていきたいと思います。

初学者向けに、丁寧に書かれている

読んですぐに、丁寧に書かれているなという印象を受けました。

特に序盤の章は混乱しないように、言い換えをするなど、慎重に言葉を選択したように見えます。
その他、委任の仕組みや名前解決の動作については図を多く使用し、わかり易く解説していました。

また、ぞれぞれの項目において参考となるページ、コラムへのリンク(ページ)が張られており、素早く辿れるようになっています。

DNSにおける主要なところはほぼカバーされており、情報系の学生や、これからDNSを業務で触っていく人がはじめに手に取る本として最適ではないかと考えています。

都度読み直す本としても使える

DNSの引っ越しやDNSSECなど、実践的な内容も含まれており、"あれ、○○ってどうだったっけ"というときに参考で読み直す本としても使用できるのでは、と思いました。

設定内容や細かい仕様面はフォーカス外

設定面の話は、敢えて避けているように見受けられました。
近年ではマルチベンダー化の話も多く、個々のソフトウェアの詳細についてはマニュアルを参照してください、ということだと思います。
また、突っ込んだ内容については本の中では対象外となっている話もあるので、そこは必要に応じて個別にRFCなどを見に行ったほうが良さそうです。

まとめ

この本はこれからDNSを勉強する、はじめる人にはオススメの本です。
また、DNSを雰囲気で理解している(?)人にとっても、一度読み返してみるのも良いかと思います。

「アメリカで、ソフトウェアエンジニアの日本人がインパクトのある仕事をする方法」を見て

本題の前に

今日はお世話になった上司が出向元に戻るということで、送別会が行われました。 その中で、ブログ再開した。アウトプットするーという話をしました。 敢えて話すことで、退路を断っていくスタイル…ということで書きます。

きっかけなど

送別会が終わって、駅で乗り換え待ちをしているときに、Facebookのシェアで気づきました。

simplearchitect.hatenablog.com

以前から度々拝見している、牛尾さんのブログ。 今回はその記事で思ったことを書き残したいと思います。

日本人的には、失礼だと思ってしまうところ

これはわかる。あまりに頻繁にピング(催促)すると…という考えは自分にもあります。 相手に尊敬を持って、という点が前提だが、アメリカでは厚かましいくらいでも良いんですね…。 確かにTwitter等をみる限り、外資系とかで働いている人達ってまわりがすごく優秀で、お互いにリスペクトしながら働いている人が多い。 そういう関係だから、相談事には親身に応じるし、全力で応援してくれる。 自分はどうかと言うと…、残念ながら忙しいとか、余裕が無いことを言い訳にして雑に応対することがあるので、注意しなければと反省しています。。。

ビジビリティ

これは個人的に気を使っているところです。 設備設計やMigration、ポリシーなど、考えていることをアウトプットし、メンバーで共有しています。 そうすることで、自分が何をしているかはメンバーから見るとわかり易いし、フィードバックが得られ内容がブラッシュアップするというメリットも生まれてくるからです。 これはソフトウェアでもやはり同じで、大事なことなんだなと思いました。

周囲と比べず、周囲の人をリソースと考える

外のカンファレンスや勉強会に行くと、優秀な若手はたくさんいるし、上を見だしたらキリがないよな、と思っています。 最近は自分の成長にファーカスしているような気がします。わからないことは質問しまくる、のはわかるのですが、個人的に注意しているところがあって、

  • 俺はこう思う、というものを持つ
    まずは自分で調べたり、手を動かしてみて、自分の中で答え(意見)を持つようにしています。それをもってから相談しています。とりあえず質問する、ではいつまでも自己解決のスキルや(論理)思考能力が向上しないと考えているからです。
  • ただし、速攻で相談した方が良い場合もある
    少し調べても、全くあたりがつけられない、にっちもさっちも行かない状況は早々に相談します。悩んで多大な時間を浪費するくらいなら、詳しい人に聞いたほうが良いです。あとは障害などスピード勝負のときは引っ張るほど損失なので、最短ルートをとる場合があります。

この2点は普段から意識しています。

最後に

こういうブログを見ると、特に外国の人たちはどう考えているのか、とか文化の一部が見えてとても参考になります。 意外と活かせるところもあるので、自分の記事に残しつつ、出来るところはやってみたいと思います。

ブログ再開と、その経緯について

先週くらいから思い始めたのですが、ブログを再開します。 再開に至った経緯や、思ったことをまずは書いてみたいと思います。

以前のブログについて

主に自分の備忘録とか、やってきたことの落書きが中心でした。 書くことで役に立つ人が居ればー程度で書いており、余裕で続きませんでした。 担当している設備のリプレイス案件や障害対応などの業務に追われ、ズルズルと時間が過ぎてしまった感があります。

これからどうするか

昔に比べれば、経験値や考えることが増えているため、様々な機会で得られたことや、 考えをアウトプットしてみます。 もう少し気楽に書くことで投稿の敷居を下げたいと思います。

以前、投稿するときは、

  • このクオリティで出して良いものかという不安があった
    ネタが制限される、書く敷居が高く、続かない
  • ブログ的な要素が少ない
    何かを通じて"俺はこう思った"、とか"こうしていきたい"、みたいなブログ的書き方が少なく、投稿が続かなかった

が主要因で、もう少し気軽に書く方針です。

ブログ再開のきっかけ

やはりSNSに影響を受けた、という要因が大きいように思います。 アウトプットの重要性を(再?)認識し、ならブログでやってみようと思いました。

ブログにアウトプットするメリットは、今のところ

  • 言語化することで、思考が精錬される
    言葉に表現する過程で、思考が整理・精錬されてくるため、頭でモヤモヤする状態が続くより健康的かなと思いました。
  • 自分の足跡・教訓などを残す
    昔にやってた自分のゲームブログを見ると、あの頃は~やってたんか、ということが最近ありました。 自分がいつどのように思っていたか、何をしていたか、を残したいと思いました。 思っているだけでは、頭から忘れてしまったら、終わりだと思ったからです。
  • フィードバックが得られる
    外部に公開することで、フィードバックが得られる可能性があります。 実はとんでもない勘違いをしていた、とか俺もそう思う、とかそういうものが有れば取り入れれば良いので、 アウトプットすることのメリットが多いと信じています。

など、挙げだすと色々あり、自分へのメリットも大きいよね、と考えられるようになりました。

Twitterとの棲み分けについて

Twitterは便利なので、併用を考えています。 参考になったスライドのReTweet/いいねや、一言二言のレベルはTwitterでつぶやこうと思います。 それ以上を書く場合はブログへ、という感じで運用してみます。

ということで、今後ともよろしくおねがいします。

CentOS6でEPELリポジトリ & dnsperfを導入

dnsperf install時にEPELリポジトリを導入した際の備忘録です。

導入したCentOSのバージョン

# cat /etc/redhat-release
CentOS release 6.8 (Final)

導入めも

# rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
# cat /etc/yum.repos.d/epel.repo
# sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/epel.repo
# yum --enablerepo=epel -y update epel-release

※注意
rpmコマンドにある URLは 32bit/64bit、Versionによって異なるのため適宜書き換えて下さい。

dnsperfを入れてみる

# yum install dnsperf --enablerepo=epel

参考

centossrv.com

Brocade MLX ACL設定に関して

Brocade MLXのACL設定めも。
ACL設定においては、ACL変更後に再適用が必要

  • Interface(SVI)からACLを外す・つける
  • 下記のようにip rebind-aclをたたく
To reapply ACLs following an ACL configuration change, enter the following command at the global CONFIG level of the CLI.
NetIron(config)# ip rebind-acl all
Syntax: [no] ip rebind-acl  |  | all

そうしないとTCAMに書き込まれない。
一般的には、

  • 一旦Interface(SVI)からACLを外して編集し、再度Interfaceに適用する
  • ACLを編集して、ip rebind-acl を叩く

のどちらかになりそう。

rsyncコマンドについて

ファイルの転送、同期に使用するrsyncに関する備忘録です。
ちょっとオプションを忘れてしまったので、その内容を書き残します。
色々とオプションは有りますが、必要があれば都度加筆します。

書式

       Local:  rsync [OPTION...] SRC... [DEST]

       Access via remote shell:
         Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
         Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

       Access via rsync daemon:
         Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
               rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
         Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
               rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

オプション

オプション 別名 意味
-a --archive -rlptgoD と同じ
-r --recursive 指定ディレクトリ配下をすべて対象とする
-l --links シンボリックリンクをそのままシンボリックリンクとしてコピー
-p --perms パーミッションをそのままコピー
-t --times タイムスタンプをそのままコピー
-g --group グループをそのままコピー
-o --owner ファイル所有者をそのままコピー (root のみ有効)
-D --devices --specials と同じ
-u --update 転送先に既にファイルが存在し、転送先のタイムスタンプの方が新しい場合は転送しない
--exclude-from=FILE - 指定ファイルに記載したリストを除外する
--inplace - 同期先ファイルに上書きコピー