certcheck released

今回、初めてgo言語による証明書の有効期限チェックを行い、Slack通知してくれるプログラムを作成しました。

Github 223n/certcheck

有効期限の残日数が指定日数未満になった際に、Slackに投稿されます。
まだ、機能不足などがあると思いますが、Issueで投稿して頂ければと思います。

Avaloniaを使ってみる

Ⅰ.Avalonia

Avaloniaは、「マルチ・プラットフォーム .NET UI フレームワーク」ということで、C#によるXAML形式でアプリ開発が出来るフレームワークです。

Avalonia – GitHub

Ⅱ.導入方法とプロジェクトの作成方法

※ここでは、Visual Studio 2017 Version 15.8.4で解説しています。

1.画面から「ツール(T)」→「拡張機能と更新プログラム(U)…」をクリックします。

Visual Studioのメイン画面

2.「オンライン」を選択します。

3.右上の検索ボックスに「Avalonia」を入力します。

4.「Avalonia for Visual Studio」を選択します。

5.インストールをクリックします。

6.「Visual Studioの再起動」が促されますので、一度、Visual Studioを終了して再起動します。

拡張機能と更新プログラム

7.新しいプロジェクトを開くと、「Visual C#」に「Avalonia」が追加されます。

8.「Avalonia Application」もしくは「Avalonia MVVM Application」を選択してプロジェクトを作成します。

新しいプロジェクト

後は、作成できたプロジェクトを元に開発を進めていくのですが、まだXAML開発はやったことがないため、少しずつ勉強しながらやりたいと思います。

RVMでrubyをインストールしたのにrubyが認識されない

RVMを公式サイトのやりかたを見ながらインストールしたのですが、
なぜかrubyを動かそうとすると、そんなコマンドは無いと言われました。

今回は、この対応メモです。

223n@ja223n:~$ ruby -v
bash: ruby: コマンドが見つかりません

PC: DELL Inspiron 14
OS: Debian 9 (stretch) 64bit

223n@ja223n:~$ rvm install ruby-head
Warning, new version of rvm available '1.29.4', you are using older version '1.29.3'.
You can disable this warning with: echo rvm_autoupdate_flag=0 >> ~/.rvmrc
You can enable auto-update with: echo rvm_autoupdate_flag=2 >> ~/.rvmrc
Checking requirements for debian.
Requirements installation successful.
Installing Ruby from source to: /home/tatami/.rvm/rubies/ruby-head, this may take a while depending on your cpu(s)...
Cloning from https://github.com/ruby/ruby.git, this may take a while depending on your connection. 
HEAD is now at 297ae3437e mjit.c: clean up unit link from iseq
From https://github.com/ruby/ruby
* branch trunk -> FETCH_HEAD
Already up-to-date.
git checkout trunk
Copying from repo to src path...
ruby-head - #autoreconf.
ruby-head - #configuring.................................................|
ruby-head - #post-configuration..
ruby-head - #compiling...................................................-
ruby-head - #installing...............
ruby-head - #making binaries executable..
Installed rubygems 3.0.0.beta1 is newer than ignore provided with installed ruby, skipping installation, use --force to force installation.
ruby-head - #gemset created /home/tatami/.rvm/gems/ruby-head@global
ruby-head - #importing gemset /home/tatami/.rvm/gemsets/global.gems.......
ruby-head - #generating global wrappers........
ruby-head - #gemset created /home/tatami/.rvm/gems/ruby-head
ruby-head - #importing gemsetfile /home/tatami/.rvm/gemsets/default.gems evaluated to empty gem list
ruby-head - #generating default wrappers........
ruby-head - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
Install of ruby-head - #complete 
Ruby was built without documentation, to build it run: rvm docs generate-ri

さらに、Useコマンドを実行したところ、なにやらおかしなことを言われます。

223n@ja223n:~$ rvm use ruby-head
RVM is not a function, selecting rubies with 'rvm use ...' will not work.

You need to change your terminal emulator preferences to allow login shell.
Sometimes it is required to use `/bin/bash --login` as the command.
Please visit https://rvm.io/integration/gnome-terminal/ for a example.

確かに、 /bin/bash –login を実行すると、rubyは正しく動くようです。
参照関連が正しく設定されていないと思い調べたところ、こちらの記事を見つけました。

RVM 経由で Ruby を入れるときにハマったこと / tsujimotterのノートブック

記事にもあるとおり、以下のコマンドを実行する必要があったみたいです。

source ~/.rvm/scripts/rvm

今回は、~/.bashrcの最後に上のコマンドを追加して、正常に動くことを確認しました。

GitHubからCloneをする際にSSLエラーが発生する

vagrant-redmine を使ってRedmineのテスト環境を構築しようとしていたのですが、
GitHubからRedmineのソースをCloneする際にエラーが発生しましたので、
その際の原因と対処法についての覚え書きです。

環境

  • OS
    • Windows 10 Home 10.0.17134 ビルド 17134
  • Vagrant
    • Version 2.1.1
  • Vagrant Box histudy/stretch
    • Version 9.5.0
  • ウイルス対策ソフト
    • カスペルスキー インターネット セキュリティ 17.0.0.611 (m)

実行エラーメッセージ

TASK [redmine : checkout Redmine] **********************************************
fatal: [default]: FAILED! => {"changed": false, "cmd": "/usr/bin/git clone --origin origin https://github.com/redmine/redmine.git /opt/redmine", "msg": "Cloning into '/opt/redmine'...\nfatal: unable to access 'https://github.com/redmine/redmine.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none", "rc": 128, "stderr": "Cloning into '/opt/redmine'...\nfatal: unable to access 'https://github.com/redmine/redmine.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none\n", "stderr_lines": ["Cloning into '/opt/redmine'...", "fatal: unable to access 'https://github.com/redmine/redmine.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none"], "stdout": "", "stdout_lines": []}

原因

カスペルスキーの「ウェブ保護」が原因で、このエラーが発生していました。
現在のところ、「ウェブ保護」を「オフ」にすることで回避できます。
「除外リストの管理に追加」や「信頼するWebサイトの設定に追加」では、
本エラーの回避はできません。

参考

Ansible Night for Osaka 2018.07 に参加して

2018年7月12日にグランフロント大阪で開催された
Ansible Night for Osaka 2018.07にブロガー枠で参加してきました!

Ref. Ansible Night for Osaka 2018.07 〜始めてみよう、Ansible!〜 / connpass

ブロガー枠での参加では、ノベルティのプレゼントがあり、今回はタンブラーを頂きました。
家で使いたいと思います。

「Automation for Everyone」 Red Hat 平田千浩さん

Infrastructure as Codeの説明から始まり、運用管理自動化の課題と実現ポイント、
従来ツールの課題、キーワードについての説明がありました。

また、Ansible TowerとAWXの紹介と、事例紹介がありました。

中でも事例紹介のイギリス陸軍によるプログラマでなくても
Ansibleによる運用ができる点や、NASAによるAnsible Towerを
監視業務に流用する事例紹介は本当になんでもできるんだなと
改めて感じさせる内容でした。

「自動化は必然、エージェントレスなAnsibleによるBIG-IP構成管理」 F5ネットワークス 伊藤悠紀夫さん

Ref. スライド資料

スーパー銭湯通の方でした。

前の情シス部門でよくF5の導入漫画を読んでました。

主にAnsibleとF5のツールを用いた自動化のデモ紹介や
DevOpsをDevOpsSecに発展させてAnsibleによる
セキュリティ作業も自動化できることなどの発表がありました。

また、Ansible x F5の無料ライセンスもあり
F5 Super-NetOps Containerと呼ばれる検証環境のコンテナを
使うことで簡単に検証できることも紹介されました。

「チームでAnsibleを共有・活用するコツ ~Linux/Zabbix/AWS への適応事例と合わせて~」 ユニアデックス 大石直樹さん

Ref. スライド資料
Ref. issi176/ansible-demo / GitHub

Ansibleをチームで活用するために3段階に分けて
それぞれゴール設定を設けたチーム活用に持っていく方法の紹介がありました。

Git導入などの他の導入でも使える考え方だと感じました。

また、最後にアレクサを使って自動構築するデモが行われたのですが、
残念ながらアレクサさんはインターネット環境に接続できず
デモは動画に限るという名言を残されました。

「Software Defined Network」 咲楽屋 重兼さん

Ansible対応のインフラ機器メーカーが増えている中、
Ansible Readyじゃない機器を制御したい!!
IP未設定状態から設定したい!!
という熱い野望が語られた濃い時間でした…

「Ansibleやらかし話」 m.shikaさん

Ansibleでやらかした話ということで、
hostsに書いたところに流れなかった
import_playbook
LDAPモジュールのバグ
と言った、初心者が躓く事例紹介でした。

今回はhostsに書いたところに流れなかった話ということで、
[001:080]という範囲指定で実行したところ001が実行されなかった
やらかした話でした。

inventoryで範囲指定を使うのはokなのですが、
playbookのhostsに範囲指定を使うのは仕様で解釈が異なるということでした。

「AWSエンジニアだから今風のナウい感じに(ry」 サーバーワークス 岩本さん

うさぎはかわいい。岩本さんのお話でした。

git pushだけでAnsibleを実行する事例紹介で
手元の端末にAnsibleをインストールは不要になるので
誰でもメモ帳とGitでAnsibleを実行できるということでした。

まとめ
わさびちゃんはかわいい(うさぎ)

「 Ansible Vault 」 @curry9999 さん

だいすきなのは「win_hostname」。curry9999さんのお話でした。

Ansible Vaultを使って機密情報の内容保護やアクセス制御ができることについて
紹介がありました。

ところでAnsible Vaultは、cryptographyで早くなるらしいですよ、奥さん!

最後に

Ansible勉強会では、もくもく会のほか、Ansible Night、
Ansible飯などの開催を行っています。

他にもコミュニティメンターという人材育成などにも
取り組んでいるということでした。

今後、関西でもAnsibleの勉強会が発展して
東西のキワモノ紹介とかが行われると良いなと感じました。

更新履歴

  1. 公開されたスライド資料を追加しました。(自動化は必然、エージェントレスなAnsibleによるBIG-IP構成管理)

 

Ansible Night in Osakaに参加してきます

今度、大阪で開催されるAnsible Night in Osaka 2018.07にブロガー枠で参加していきます。

Ansible Night in Osaka 2018.07

加古川IT系インフラ勉強会でAnsibleを知って数年。

最近では、Ansibleを使ってノートPC(Debian)にツールをセットアップするなど、
業務で使わない分、個人で使い始めている訳ですが、
今回は色々とお世話になっている wateさん からお誘いを受けて
参加することを決めました。

蒲郡市でHackカフェを開きたいなぁ…

ローカルマシン用のAnsibleを作り始めて

Windowsばかりで、あまりLinuxをセットアップすることもなく、でもAnsibleの靴音が迫りつつあるなか、

開発マシン(Debian)をAnsibleで構成しましょう。

という一言で、Ansibleを始めました。

https://github.com/223n/ts

正常に動くようになったのですが、Travis-CIが上手く動いてくれないので、少し四苦八苦しています。

Ansibleの道は遠いです

Oracle.DataAccessでパラメータエラーが発生する

Oracle.DataAccess.dll (Oracle 12c版)を使ってSQLを発行している場合に以下のようなエラーが発生します。

パラメータ・バインディングが無効です
パラメーター名:その他

このエラーですが、SQLのコメントに「:」を含む場合や、「/* */」でコメントを書いており「/」がコメント内にあり「:」がある場合などに、パラメータと誤認してArgumentExceptionエラーが発生するようです。

全角の「:」にする、「/」を削除するなどの対策が必要です。