かべぎわブログ

ブログです

2018-05-01から1ヶ月間の記事一覧

Ansibleのshellとwin_shellに複数行のコマンドを記載する

概要 Ansibleのshellとwin_shellモジュールの中で複数行にわたるコマンドを記載してみたいと思います。 playbook例 実行してみる こんなかんじでechoが3行出力されていることがわかる。 $ ansible-playbook shell_fukusuu.yml -v PLAY [localhost] *********…

Route53のホストゾーンを削除するときはレコードセットを全部削除しておく

AWS

概要 Route53でHosted Zoneを削除するときになんかエラーがでたのでそれの解決方法 こんなエラーがでた Before you can delete a hosted zone, you must first delete all resource record sets except the NS and SOA resource record sets for the zone ap…

Lambda(Python)でインスタンスの特定のタグの値がなんなのかを出力する

概要 Lambda(Python3)をつかってEC2インスタンスについているあるタグの値がなんなのかを出力してみます。 スクリプト tag_keyに出力したいタグのkeyを指定します。 実行結果 たとえば、こんなかんじでタグがついていたとします。 それをこのLambdaを実行す…

Ansibleのstart-atを利用してplaybookの途中から実行する

概要 Ansibleのplaybookを途中から実行する方法をご紹介します。 これを利用することでplaybookの途中でエラーでとまっちゃったんだけど初めからやり直すのめんどくさいなーというときに便利です!!! playbook例 playbookはなんでもいいです。 てきとーにd…

Lambda(Python)で特定のVPCの中のサブネットの一覧を出力する

概要 Lambda(Python)を利用して、特定のVPCの中のサブネットの一覧を出力してみたいと思います。 スクリプト例 Lambdaのスクリプト的にはこんなかんじ。 実行結果 { 'Subnets': [{ 'AvailabilityZone': 'ap-northeast-1c', 'AvailableIpAddressCount': 250, …

Pythonで配列をuniqする

概要 Pythonで配列の要素をuniqして、重複を排除してみたいと思います。 コード例 こんなかんじの配列があったとします。 test_array = [ 'AAA', 'BBB', 'BBB', 'CCC', 'AAA' ] それをこんなかんじでsetにつっこんであげます。 uniq_array = list(set(test_a…

CloudWatchで日と曜日を指定するときはどちらかに?をつかう

AWS

わりと忘れがちなのでメモ。 概要 CloudWatchのスケジュールのcron式で日と曜日を指定するときに、ちゃんと設定しているはずなのに以下のようなメッセージがでてきたのでそれの回避方法です。 Parameter ScheduleExpression is not valid. 回避方法 こんなか…

Pythonでいま昭和何年か調べる

概要 新元号になっても平成を使い続けるかもしれないというニュースを見たので。 平成に対応できずに便宜上昭和を使い続けているレガシーな企業で役に立つと思う(役に立つとは言っていない) できたもの 実行してみる $ date 2018年 5月 16日 水曜日 21:15:01…

Ansibleでjinja2のifをつかって条件分岐させる

概要 Ansibleのplaybookの中でjinja2の記法をつかって条件分岐させてみたいと思います。 playbook例 prodがhonならhonban、kaiならkaihatsuと出力するように設定しています。 実行してみる honbanと出力されていることがわかります。 $ ansible-playbook jin…

Ansibleのwait_for_connectionをつかってOSの再起動を待つ

概要 Ansibleのwait_for_connectionを利用してターゲットノードのOSを再起動の完了を待ってみようと思います。 playbook例 shellでサーバの再起動を実施しています。asyncとpollを指定することでsshコネクションが切断されても処理をそのまま続けることがで…

AnsibleでターゲットのIPアドレスを取得する

概要 Ansibleを利用してターゲットノードのIPアドレスを取得してみたいと思います。 playbook例 実行してみる IPアドレスが出力されていることがわかります! $ ansible-playbook default_address.yml -v PLAY [target] ***********************************…

複数のAWSマネジメントコンソールを利用するときのChromeの設定のすすめ

AWS

概要 AWSのマネジメントコンソールを複数アカウント/ユーザ分利用することがまれによくあると思います。 別のアカウントでマネジメントコンソールを立ち上げたときに以下のような画面が出てしまって、セッションが全部切り替わってしまって、あーーーーーー …

Pythonで平成があと何日あるのか計算する

概要 Pythonをつかって平成があと何年で終わってしまうのか計算してみたいと思います。 前提 2019/05/01から新元号になります。 というわけで平成最後の日は2019/04/30です。 できたもの こんなかんじでやってます。 標準ライブラリのdatetimeを利用して計算…

Ansibleのblockinfileモジュールをつかってテキストファイルに行を追加する

概要 Ansibleのblockinfileモジュールをつかってテキストファイルに任意の行を追加してみたいと思います。 playbook例 実行してみる $ ansible-playbook blockinfile.yml -v PLAY [localhost] ************************************************************…

Ansibleのreplaceモジュールをつかって文字列を置換してみる

概要 Ansibleのreplaceモジュールを利用して、テキストファイルなどの文字列を置換してみようと思います。 playbook例 ちょっとした説明 destで置換したいファイルを指定します。 regexpで置換したい文言を指定します(正規表現可) replaceで置換後の文言を指…

Ansibleでcronを設定してみる

概要 Ansibleのcronモジュールを利用してcrontabを設定してみようと思います。 playbook例 以下のように設定しています。 minuteやhourなどにcronで実行したい時間を設定します。 省略すると*扱いとなります。 jobは実行したいコマンドです。 実行してみる $…

Ansibleのhostnameモジュールでホスト名を変更する

概要 Ansibleのhostnameモジュールを利用してサーバのホスト名を変更してみます。 playbook例 こんなかんじで自分自身のホスト名をwawawa_serverに変更しています。 become: trueで実行しないと権限の関係で変更ができない可能性があるので要注意です。 実行…

Ansibleのexpectで対話型のスクリプトを実行してみる

概要 Ansibleのexpectを利用して対話型のスクリプトを実行してみようと思います。 準備 Ansibleでexpectモジュールを利用するためにはpexpectのインストールが必要です。 以下のコマンドでインストールしておきます。 $ sudo pip install pexpect playbook例…

readコマンドで対話的なシェルスクリプトをつくる

概要 readという標準入力を1行読み込むことのできるコマンドを利用して対話的なシェルスクリプトを作ってみようと思います。 スクリプト スクリプトはこんなかんじ ちょっとした説明 readコマンドを利用して標準出力を読み込んで変数に格納しています。 それ…

ホテイのじゃがベーコンブラックペッパー味の缶詰がハイパーうまい

ホテイのじゃがベーコンブラックペッパー味がハイパーうまいです。 外観はこんなかんじ 内観はこんなかんじ じゃがいもはこんなかんじ ハイパー味が濃い ベーコンはこんなかんじ やわらかい おわり ホテイフーズ じゃがベーコン ブラックペッパー味 90g×4個…

Ansibleのバージョンを指定してインストールする

概要 Ansibleの特定のバージョンをインストールする方法をご紹介します! バージョンを指定してインストール たとえば、バージョン2.4.3をインストールする場合は以下のコマンドのようにバージョンを指定してpip installを実行します。 $ sudo pip install a…

Ansibleのblock内のalwaysの動きを確認してみる

概要 Ansibleのblockのなかでalwaysディレクティブを指定してみて動きを確認してみます。 alwaysの説明 alwaysはblock内で指定できるディレクティブで、その名の通りいつでも実行される処理です。 タスクが成功しても失敗しても実行されるため、エラーハンド…