Skip to content

Instantly share code, notes, and snippets.

@libero18
Last active December 28, 2015 09:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save libero18/7477860 to your computer and use it in GitHub Desktop.
Save libero18/7477860 to your computer and use it in GitHub Desktop.
[WIP] Ansible
  • 参考

  • 構成管理について

  • インストール

    • homebrew

      brew install ansible
      
  • 準備

    • Ansibleを実行するカレントディレクトリに対象ホストを記載するインベントリファイルを作成する

    • 追加する対象ホストは、鍵認証が実行可能である必要があります

    • SSHの接続情報(秘密鍵のパスなど)については、 ~/.ssh/config に別途記載する必要があります

    • SSH接続する際の指定ユーザは、sudoの権限が "ALL=(ALL) NOPASSWD: ALL" になっている必要があります

      echo 192.168.100.1 >> /path/to/inventory-file
      
    • ssh host001 で 192.168.100.1 に、接続が可能であればホスト名でも可

      echo host001 >> /path/to/inventory-file
      
    • 任意のインベントリファイルを利用するように環境変数を追加します

      • オプションを指定することで、毎回、任意のファイルを指定することもできます
      export ANSIBLE_HOSTS=/path/to/inventory-file
      
    • 追加した対象ホストに対して疎通確認を実施します

      ansible 192.168.100.1 -m ping
      
    • python-simplejsonが入ってなければ、下記のようにエラーとなります

    • その場合は、下記のコマンドでシステム情報を取得することができるか確認します

      192.168.100.1 | FAILED >> {
        "failed": true,
        "msg": "Error: ansible requires a json module, none found!",
        "parsed": false
      }
      
      ansible 192.168.100.1 -m raw -a "uname -a"
      
  • 実行

    • リモートホスト側でAnsibleを実行する際に必要となるライブラリを導入します

      ansible 192.168.100.1 -m raw -a "sudo yum install -y python-simplejson"
      ansible-playbook xxxxxx.yml
      
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment