Ansible
まず事象として タスクがskipされたときでもregisterにはその旨が格納されてしまう。 - hosts: localhost tasks: - debug: msg: "TRUE" register: true_register when: true - debug: var: true_register - debug: msg: "FALSE" register: false_register wh…
以下のようなVagrantfileを利用する。 config.vm.provisionでansibleをえらんであげればOK この場合はVagrantfileと同一ディレクトリにあるplaybook.ymlを実行してくれる。 Vagrant.configure("2") do |config| config.vm.network "private_network", type: …
ローカルで適当にうごかすかーみたいなときによくやる構成。 ディレクトリ構成 . ├── Dockerfile └── playbooks └── playbook.yml Dockerfile FROM python:3.8 RUN pip install pip --upgrade RUN pip install ansible WORKDIR /work ビルドして docker buil…
秘密鍵も含めてGitHubにプッシュしたかった。 プライベートリポジトリとはいえそのままプッシュするのはためらわれたのでansible-vaultで暗号化してみる。 秘密鍵の暗号化 ansible-vaultで秘密鍵を暗号化 パスワードは適当に入力 ansible-vault .ssh/pri…
概要 Ansibleを利用してIAMポリシーを作成してみたいと思います。 playbook playbookとそれでつかうJSONはこんなかんじ。 JSONに記載したポリシーのとおりにIAMポリシーが作成されます。 実行結果確認 ポリシーができている。 $ aws iam list-policies --que…
概要 AnsibleでLinuxサーバのOSを再起動してみたいと思います。 playbook たったこれだけ。 おわりに むかしはWindowsの再起動のモジュールしかなかったんだけどAnsible2.7からLinux用のモジュールが追加されていた。 Ansible実践ガイド第2版 impress top ge…
概要 しらなかったのでメモ。 つかいどころがあるのかどうかはわからぬ。 playbook たとえばこんなかんじのplaybookがあったとする。 実行してみる こんなかんじでifが実行されていることがわかる。 $ ansible-playbook ./wawawa.yml --extra-vars="hensuu=w…
Ansibleでエラーになったときにでる.retryファイルがなんかうざいなーとおもってきたので出ないように設定してみます。 ansible.cfgに以下を設定してあげます。 retry_files_enabled = False こうすればでなくなります!!!!!!! Ansible実践ガイド 第2…
概要 AnsibleでgoofysをインストールするPlaybookを書いた。 playbook こんなかんじ。 おわりに epel-releaseとfuse,golangを分けたのはなんかそうしないとうまくいかなかったんだよね。 Ansible実践ガイド 第2版 (impress top gear)作者: 北山晋吾,塚本正隆…
概要 Ansibleでほとんどなにもしていない生のCentOSにRuby2.6.0とrbenvとかもろもろ一式をインストールするplaybookを書いてみました。 playbook shellのところだけ~/でホームディレクトリが呼び出されないのでがっつりかいているよ。 Ansible実践ガイド 第2…
概要 ansible_ssh_common_argsを利用して踏み台を経由して、外部においてあるAnsibleからだと直接接続できないサーバの構成管理をしてみたいと思います。 構成 構成としてはこんなかんじ。 仕事でつかうようなかんじだとよくあると思う。 外部のAnsibleから…
概要 Ansibleのモジュールを自分でつくってみて動かしてみたいと思います。 環境 Ansibleを動かす環境はこんなかんじ。 いたって普通の環境。 library/jisaku.pyが今回のキモの自作モジュール。 $ tree . ├── inventories │ └── hosts ├── jisaku.yml └── li…
概要 Ansibleでステップ実行してplaybookのタスクを確認しながら実行してみたいと思います。 やってみる たとえばこんなかんじのplaybookがあるとします。 - hosts: localhost gather_facts: false tasks: - name: "saisyo" debug: msg: "wawawa" - name: "t…
概要 AnsibleをつかってSystemdに新規サービスを追加して、それを有効化して起動してみたいと思います。 playbook例 ちょっとした解説 以下のようなことをやっている。 wawawa.serviceというunitファイルをターゲットにコピーする。 daemon reloadする wawaw…
概要 Ansibleのshellモジュールでターゲットノードでコマンドを実行しようとしたところ、「コマンドが見つかりません」というエラーが返ってきてしまいました。 のでそれの対処法です。 こんなかんじのplaybookがエラーになった。 - hosts: target tasks: - …
概要 Ansibleのcopyモジュールでワイルドカードを利用して複数のファイルを一気にコピーする方法のご紹介です。 playbook例 with_fileglobでファイルを指定してあげることでワイルドカードを利用して複数ファイルを一気にコピーすることができます。 実行し…
概要 Ansibleのimport_playbookを利用してほかのplaybookをまるまるそのまま読み込んで実行してみたいと思います。 playbook例 たとえば以下のようなplaybookがあったとします。 実行してみる yomikomi.ymlを実行してみます。 $ ansible-playbook yomikomi.y…
Ansible AWX を Amazon Linux2 にインストールしてみたいと思います。 (Docker版でインストールしています) インストール手順 各種パッケージ類のインストール gitのインストール dockerのインストール Ansibleのインストール pip のインストール docker-py…
概要 Ansibleのwin_fileモジュールを利用して、Windows上にファイルやフォルダを作ったり、それを削除してみたいと思います。 ファイルを作成する 以下のようなかんじでファイルを作成することができます。 ファイルが存在しない場合は空ファイルが作成され…
概要 Ansibleのshellとwin_shellモジュールの中で複数行にわたるコマンドを記載してみたいと思います。 playbook例 実行してみる こんなかんじでechoが3行出力されていることがわかる。 $ ansible-playbook shell_fukusuu.yml -v PLAY [localhost] *********…
概要 Ansibleのplaybookを途中から実行する方法をご紹介します。 これを利用することでplaybookの途中でエラーでとまっちゃったんだけど初めからやり直すのめんどくさいなーというときに便利です!!! playbook例 playbookはなんでもいいです。 てきとーにd…
概要 Ansibleのplaybookの中でjinja2の記法をつかって条件分岐させてみたいと思います。 playbook例 prodがhonならhonban、kaiならkaihatsuと出力するように設定しています。 実行してみる honbanと出力されていることがわかります。 $ ansible-playbook jin…
概要 Ansibleのwait_for_connectionを利用してターゲットノードのOSを再起動の完了を待ってみようと思います。 playbook例 shellでサーバの再起動を実施しています。asyncとpollを指定することでsshコネクションが切断されても処理をそのまま続けることがで…
概要 Ansibleを利用してターゲットノードのIPアドレスを取得してみたいと思います。 playbook例 実行してみる IPアドレスが出力されていることがわかります! $ ansible-playbook default_address.yml -v PLAY [target] ***********************************…
概要 Ansibleのblockinfileモジュールをつかってテキストファイルに任意の行を追加してみたいと思います。 playbook例 実行してみる $ ansible-playbook blockinfile.yml -v PLAY [localhost] ************************************************************…
概要 Ansibleのreplaceモジュールを利用して、テキストファイルなどの文字列を置換してみようと思います。 playbook例 ちょっとした説明 destで置換したいファイルを指定します。 regexpで置換したい文言を指定します(正規表現可) replaceで置換後の文言を指…
概要 Ansibleのcronモジュールを利用してcrontabを設定してみようと思います。 playbook例 以下のように設定しています。 minuteやhourなどにcronで実行したい時間を設定します。 省略すると*扱いとなります。 jobは実行したいコマンドです。 実行してみる $…
概要 Ansibleのhostnameモジュールを利用してサーバのホスト名を変更してみます。 playbook例 こんなかんじで自分自身のホスト名をwawawa_serverに変更しています。 become: trueで実行しないと権限の関係で変更ができない可能性があるので要注意です。 実行…
概要 Ansibleのexpectを利用して対話型のスクリプトを実行してみようと思います。 準備 Ansibleでexpectモジュールを利用するためにはpexpectのインストールが必要です。 以下のコマンドでインストールしておきます。 $ sudo pip install pexpect playbook例…
概要 Ansibleの特定のバージョンをインストールする方法をご紹介します! バージョンを指定してインストール たとえば、バージョン2.4.3をインストールする場合は以下のコマンドのようにバージョンを指定してpip installを実行します。 $ sudo pip install a…