yyp٩( 'ω' )و

色々触って遊んでます

AtCoderを始めました。

AtCoderC++のtutorialをやってみています。

beta.atcoder.jp

現在はインフラエンジニアですが、ゆくゆくはもっと上のレイヤもやってみたいということと、 Infrastracture as Codeに興味があるのでプログラミングも多少分かってたほうがいいかなと思ったからです。

Progateとpaizaは以前やってたのですが、少々物足りず…
かといって書籍でがっつりやる余裕もなさそう…
ということでTutorial後もできるコンテンツがある*1AtCoderにしました。

正直いつまで続くか分かりませんが、しばらくやってみようと思います~

*1:AtCoderでは毎週土曜日にプログラミングコンテストが開催されています。

便利コマンド grep

grepをよく使います。
psと組み合わせて特定のプロセスの状態を確認したり、lsと組み合わせてファイルがあるか確認したり。
findのオプションを覚えるのが面倒なので、ルートディレクトリに移動してパイプでgrepに渡して探したりもしています。

$ cd /
$ find | grep httpd.conf

こんな感じ。

そして最近、また一つ便利な使い方を覚えました。

$ grep 〈検索したいもの〉 〈ディレクトリ〉 -r

ディレクトリ〉以下のファイルの中身を全部見て、〈検索したいもの〉が使われている部分を出力してくれます。
変数が使われている場所を調べるときなどに便利です。

WindowsにGitbash入れてるので、テキストファイルの中身も見れるのだろうか…
今度やってみようと思います。

WindowsをAnsibleでごにょごにょする 〜ISSUEがクローズしました〜

先日立てたISSUEの顛末です。
立てたときの記事↓
WindowsをAnsibleでごにょごにょする ~ISSUEを立てました~ - yyp٩( 'ω' )و

週明けに回答をしてくれました。
一応bug reportで出していましたが、bugではないみたい。
処理がどう走るかまで教えてくれました。優しい。

「こんなことも分からないの?笑」的な感じで来られるのを恐れていたので、無事にクローズしてよかったです…

WindowsをAnsibleでごにょごにょする ~ISSUEを立てました~

以下の記事でAnsibleの初期設定をしました。
WindowsをAnsibleでごにょごにょする ~初期設定編~ - yyp٩( 'ω' )و
実はこれを行った本当の目的は「AnsibleのISSUEを立てる」でした。
立てたISSUE↓
github.com

ISSUEを立てたのは初めてなので、どきどきですね…

WindowsをAnsibleでごにょごにょする ~初期設定編~

概要

WindowsをAnsibleでプロビジョニングしようと思ったら初期設定の段階で詰まったのでメモ。

環境

AWS上でやりました。
ターゲットノード: Windows2016(ami-151a78f8)
コントロールノード: Amazon Linux2(ami-e99f4896)

コントロールノード側準備

まずpipをインストール
こちらを参考にさせていただきました。
qiita.com

ansibleとpywinrmインストール

$ pip install ansible
$ pip install pywinrm

ターゲットノード側準備

Ansibleから疎通が取れるようセットアップ。
こちらを参考にさせていただきました。
qiita.com

プレイブック実行

/etc/以下にディレクトリ等を作成し、プレイブック作成、実行。
以下のようなメッセージが表示され、プレイブックが実行されない。

 [WARNING]: Unable to parse /etc/ansible/hosts as an inventory source

 [WARNING]: No inventory was parsed, only implicit localhost is available

 [WARNING]: provided hosts list is empty, only localhost is available. Note
that the implicit localhost does not match 'all'

どうやらデフォルトで見ているインベントリファイルと自分が設定したファイルが違うみたい。

トラブルシュート

ansible.cfgをプレイブックと同じディレクトリに配置。
インベントリファイルは/usr/local/etc/ansible/inventoryに置いているのでそこを指定。

#ansible.cfg
[defaults]
inventory=/usr/local/etc/ansible/inventory

プレイブック実行

 [WARNING]: Unable to parse /usr/local/etc/ansible/inventory as an inventory
source

 [WARNING]: No inventory was parsed, only implicit localhost is available

 [WARNING]: provided hosts list is empty, only localhost is available. Note
that the implicit localhost does not match 'all'

/usr/local/etc/ansible/inventoryがinventory sourceだということをどこかで明言しないといけないらしい…
面倒なのでオプションで何とかならないか模索。

$ ansible-playbook -i ./inventory/hogehoge.ini hogehoge.yml -vvv
TASK [Gathering Facts] ***********************************************************************
task path: /usr/local/etc/ansible/admin_lock.yml:1
Using module file /usr/lib/python2.7/site-packages/ansible/modules/windows/setup.ps1
<10.X.X.X> ESTABLISH WINRM CONNECTION FOR USER: Administrator on PORT XXXX TO 10.X.X.X
EXEC (via pipeline wrapper)
ok: [10.X.X.X]
META: ran handlers

疎通できました。

Gitコマンドチートシート よく使うもの編

自分のローカル環境に保存していましたが、どこでも見たくなったのでここに保存することにします。

変更のあったものすべてをステージング

$ git add -u

コミット
$ git commit -m "comment"

リモートリポジトリに反映
$ git push
リモートリポジトリの変更をローカルブランチに反映
$ git fetch
$ git merge origin/local branch name
push済みの変更をなかったことにしたい
$ git revert <なかったことにしたい変更のコミットID>
※これは取り消しましたよ~というコミットを作るだけなので履歴は残る
直前のcommitコメントを変更したい
$ git commit --amend

 

そのうちちゃんと記事にしたい…