かべぎわブログ

技術的なことについてかけたらいいな…

Ansibleのwith_itemsで複数の変数を利用する

概要 Ansibleのwith_itemsディレクティブで複数の変数を利用する方法をご紹介します。 playbook例 こんなかんじでwith_itemsの項目を{}で囲ってあげます。 実行例 msgの部分を見るとちゃんと指定したとおりに出力されていることがわかる。 $ ansible-playboo…

Ansibleのwith_itemsで一気にいろいろyumインストールする

概要 Ansibleのwith_itemsディレクティブというループ処理(シーケンシャル呼び出し処理)を実行できるものを利用して、いろいろ一気にyum installしてみたいと思います。 playbook例 playbookはこんなかんじです。 今回の例ではdockerとnginxをインストールし…

Ansibleでshellをつかってもchanged_whenで絶対にchangedにしない

概要 Ansibleでshellやcommandモジュールを利用すると、結果が常にchangedになってしまいます。 なんか気持ち悪いなーということで絶対にchangedにしない方法です。 playbook例 changed_when: Falseとすることで絶対にchangedにはならなくなります。 実行例 …

cd - で一つ前にいたディレクトリに戻る

概要 cd -コマンドを利用することで一つ前に自分が居たディレクトリに戻ることができます。 コマンド例 $ pwd /Users/kabegiwa/Downloads $ cd $ pwd /Users/kabegiwa $ cd - /Users/kabegiwa/Downloads おわりに これでまちがってcd実行してホームディレク…

pipをプロキシ環境で利用する

概要 pipコマンドをプロキシ環境で利用する方法についてご紹介します。 コマンド例 こんなかんじでオプションをつけてあげることでプロキシをとおした環境でもpipを利用することができます。 pip install awscli --proxy http://example.proxy:8080 [試して…

Google Apps Script でカレンダーをスプレッドシートにエクスポートする

概要 Google Apps Scriptを利用して自分のGoogle カレンダー上の1日分の予定をスプレッドシートにエクスポートしてみたいと思います。 スクリプト スクリプトはこんなかんじ CalendarApp.getDefaultCalendar().getEvents(oneDayAgo, now)でカレンダーの予定…

Ansibleのec2.pyの結果のJSONをホストグループ形式のファイルにしてみる

AnsibleでAWSのイントラを管理するときに利用するec2.pyの結果で応答されるJSONを人間に優しいホストグループ形式に変換してみたいと思います。 スクリプトはこんなかんじ スクリプト自体はこんなかんじです。 シェルスクリプトでsedで変換かけているだけで…

commコマンドで2つのテキストファイルの比較結果を出力する

あんまり知られてないような気がするけれど結構便利なcommコマンドについてまとめてみます。 commコマンドとは? commコマンドとは、2つのソートされたテキストファイルを比較できるコマンドです。 ファイルを比較して、片方のファイルにしか存在しない行や、…

Ansibleでプロキシ経由でインターネットに接続する

概要 社内イントラなど、プロキシを経由しないとインターネットと接続できないのでyumでインストールができない。など色々あると思います。 今回はAnsibleでプロキシを経由してインターネットと接続してみたいと思います。 playbook例 以下のようにenvironme…

Ansibleで新規ホストへのssh接続時にyes/noを確認しないようにする

概要 Ansibleではターゲットへssh接続をしています。 ですので、sshのデフォルトの動きとして新規ホストへの接続時は以下のように「接続するかい?いいかい?」と聞かれます。 Are you sure you want to continue connecting (yes/no)? ですので今回はそれを…

AnsibleでAnsibleをインストールする

概要 AnsibleでAnsibleをインストールします。 なんとAnsibleを実行するだけでAnsibleをインストールすることができます。 playbook rpmをwgetしてきて、epelリポジトリを追加して、yumでAnsibleを実行しています。 おわりに おわれ Ansible実践ガイド 第2版…

Pythonで引数をランレングス符号化する

趣味と実益を兼ねてPythonでランレングス符号化(圧縮)するスクリプトを書きました。 スクリプト こんなかんじ。 #実行結果 こんなかんじで利用できます。 $ ./run_length.py aaabbbbbcccdddefffgggggh a3b5c3d3e1f3g5h1 おわり おわれ Python 1年生 体験し…

AnsibleでCentOSにAWSCLIをオフラインインストールする

概要 Ansibleを利用してCentOSにAWSCLIをオフラインインストールしてみます。 playbook例 ちょっとした制限事項と前提 なんらかの方法でAnsibleを実行するサーバにAWSCLIのバンドルされたインストーラを格納する必要があります。 ↓これ https://s3.amazonaws…

Ansibleでwhenをつかってエラーハンドリングしてみる

概要 whenディレクティブを利用してAnsibleのplaybookでエラーハンドリングしてみます。 概要 playbook ちょっとした解説 実行結果 コピーの結果ファイルが変更されたとき コピーしてもファイルに変化がなかったとき コピーが失敗したとき コピーがスキップ…

AnsibleのGathering Factsを実行しないようにする

今回はansible-playbookを実行するときに毎回実行されるGathering Factsを実行しないように設定してみたいと思います。 (意外と実行に時間がかかってるようなきがするので) そもそもGathering Factsってなにやってんの? ターゲットノードのメタデータ(IPア…