タグ

ansibleに関するrsakamotのブックマーク (63)

  • Variables - Variable Precedence: Where Should I Put A Variable? — Ansible Documentation

    Ansible getting started Getting started with Ansible Getting started with Execution Environments Installation, Upgrade & Configuration Installation Guide Ansible Porting Guides Using Ansible Building Ansible inventories Using Ansible command line tools Using Ansible playbooks Ansible playbooks Working with playbooks Templating (Jinja2) Using filters to manipulate data Tests Lookups Python3 in temp

  • Ansible2 変数の優先度 - Qiita

    意外と「Ansible 変数 優先度」とかでググッても出てこないので、こちらにメモします 内容は、ドキュメントVariables — Ansible Documentationで説明されてるものを逆順にして日語化しただけです。 逆順にしたのは、単純にそのほうが自分にとって見やすいからです。 Ansible2 変数の優先度ランキング つよい(確信) - extra vars - タスクのvars - ブロックのvars - ロールのvars/includeした変数ファイル - set_facts - 処理でregisterした変数 - 処理内vars_filesで指定のファイルで定義された変数 - 処理内vars_promptでプロンプトから渡された変数 - 処理内のvarsで定義された変数 - ファクト(setupで拾ってきた値) - Playbookで定義されたhost_vars -

    Ansible2 変数の優先度 - Qiita
  • AnsibleのInventory Groupで環境毎に異なるlocalhostを構築する | DevelopersIO

    渡辺です。 Ansibleでは、ホストをInventoryファイル(スクリプト)で定義します。 この時、次のようにグループ化することが可能です。 [prd] 10.0.0.10 10.0.0.20 [stg] 10.0.100.10 10.0.100.20 ここではprdグループとstgグループにホストを定義しています。 ホストをグループ化することで、グループ変数(group variable)が利用できるため、番環境(prd)と検証環境(stg)における構成の差異を反映した構成管理を行えます。 ここまではよくある話。 今回、ハマったのは番環境も検証環境もlocalhostの場合です。 すなわちAnsibleをローカル実行させる場合に期待通りのグループ変数が適用されなかったというお話です。 期待通りにいかないファイル構成 こちらは上手く動作しなかった構成です。 # hosts [stg

    AnsibleのInventory Groupで環境毎に異なるlocalhostを構築する | DevelopersIO
  • サブ要素をループするAnsibleのwith_subelements | DevelopersIO

    渡辺です。 AnsibleのPlaybookやRoleの再利用性を高めるためには、綺麗なグループ変数定義を目標とし、タスク定義でゴニョゴニョするのが基です。 今回は、こんなグループ変数に役立つwith_subelementsを紹介します。 vars: users: - name: user1 groups: - wheel - hoge - name: user2 groups: - hoge 要は多重ループをしたいってことになります。 プログラミング的にはこんなイメージです(擬似コード)。 for (user in users) { for (group in user.groups) { # user と groupによる処理 } } with_subelementsによる多重ループ 結論から言えば、with_subelementsを利用することで多重ループを処理することができます。

    サブ要素をループするAnsibleのwith_subelements | DevelopersIO
  • ansibleのhash behaviourを変更して環境別の変数を定義しやすくする

    この記事は ansible advent calender 18日目の記事です。 この記事では、ansibleのhash behaviourを変更して環境別の変数を定義しやすくするtipsを紹介します。 hash behaviourとは ansibleのhash構造の変数が複数ファイルで定義されてる場合のマージポリシーを規定する設定項目です。これを上手く使うと、環境別の定数を定義しやすくなり、roleの再利用性が上がります。 変数をmerge/replaceモードで出力する gitという定数を複数のファイルで定義し、中身を出力してみます --- - hosts: all vars_files: - vars/base.yml - vars/override.yml tasks: - name: "degug" debug: msg="{{ git }}"

    ansibleのhash behaviourを変更して環境別の変数を定義しやすくする
  • Ansibleの変数(Variables)のマージポリシー - Qiita

    $ ansible-playbook -i host/local test.yml PLAY [all] ******************************************************************** GATHERING FACTS *************************************************************** ok: [127.0.0.1] TASK: [でばっぐ] ********************************************************** ok: [127.0.0.1] => { "msg": "{'branch': 'override'}" } おやおや、 git.repo=xxxx が消されてしまいましたね。 replaceのポリシーなので、git

    Ansibleの変数(Variables)のマージポリシー - Qiita
  • Ansible で Amazon Linux を判断させる為の正攻法とちょっと強引なやり方 - ようへいの日々精進XP

    Ansible 初心者からなかなか脱却出来ないかっぱです。 Ansible で OS を判断させて何かさせたい場合には... Ansible で OS を判断させて何かさせたい場合には... fact パイセンで取得出来る情報を利用して判断させる。 setup モジュールを利用することで対象ホストの fact 情報を取得することが出来ちゃう。 $ ansible -i inventories/docker_inventory.rb all -m setup -c paramiko ansible_01 | success >> { "ansible_facts": { "ansible_all_ipv4_addresses": [ "172.17.0.22" ], "ansible_all_ipv6_addresses": [ "fe80::42:acff:fe11:16" ], "ans

    Ansible で Amazon Linux を判断させる為の正攻法とちょっと強引なやり方 - ようへいの日々精進XP
  • AnsibleのDynamic InventoryでAWS EC2管理 - Qiita

    やりたいこと AnsibleのInventoryをファイルではなく、EC2インスタンスに付けたタグで管理したい 背景 AWS Auto Scaling を使うとIPアドレスが動的にインスタンスに割り当てられるため、Inventoryファイルもその都度、メンテナンスしないといけないのだが、やりたくない AnsibleのDynamic Inventory: http://docs.ansible.com/intro_dynamic_inventory.html 手順 EC2インスタンスにenvとroleタグ(タグ名は何でも構わない)を付けておく 予め、AutoScalingGroupにタグを設定しておくと便利(Tag New InstancesをYesに設定) 番(production)とステージング(stage)のDynamic Inventory作成 Inventory director

    AnsibleのDynamic InventoryでAWS EC2管理 - Qiita
  • AnsibleによるVPCの構成管理 | DevelopersIO

    渡辺です。 AnsibleによるAWSリソースの構成管理シリーズ、 今回はVPC(ネットワーク)周りを構築するAnsible Playbookを紹介します。 Ansible2.0で追加されたモジュールを利用しているため、現行のAnsible2.1系でも利用可能です。 グループ変数のサンプル 今回紹介するPlaybookで定義するグループ変数のサンプルです。 env: Prd profile: default region: ap-northeast-1 vpc: name: VPC cidr_blodk: 10.0.0.0/16 subnet: - name: PublicA az: ap-northeast-1a cidr: 10.0.1.0/24 route: Public - name: PublicC az: ap-northeast-1c cidr: 10.0.2.0/24 ro

    AnsibleによるVPCの構成管理 | DevelopersIO
  • AnsibleでVPCの作成 - Qiita

    はじめに 前回の続きでAnsibleでEC2インスタンスを構築を目指していこうと思います。 まずは、VPCの構築。 前提 OS X El Capitan (バージョン 10.11.4 ) Python 2.7.10 Ansible 2.0.1.0 AWSのIAMアカウントのアクセスキー -->アクセスキーはAWSのコンソールでIAMから作成しておいてください。 botoのインストール ここを参考にAWS SDK For Python (Boto)をインストール $ sudo pip install boto Password: Collecting boto Downloading boto-2.39.0-py2.py3-none-any.whl (1.3MB) 100% |████████████████████████████████| 1.4MB 435kB/s Installing

    AnsibleでVPCの作成 - Qiita
  • Ansibleの標準モジュールでEC2のサーバー構築をしてみる | TECHSCORE BLOG | TECHSCORE BLOG

    はじめに はじめまして、多田です。 最近は環境構築にAnsibleを利用することが多くなりましたが、調べているとAWSのようなクラウド環境の構築についてもAnsibleはその多くを標準モジュールとして備えているようですので、いくつか試してみました。 どこまでやるか 標準モジュールを利用したPlaybookを作成し、以下の内容の構築・設定を行えるようにする。 セキュリティグループの作成 EC2インスタンスの作成 AMIの作成 CloudWatchの設定(オートリカバリ) 前提 AWSマネジメントコンソールで、サーバー構築に使用するIAMユーザが作成されていること AWSマネジメントコンソールで、キーペアを登録してあること 準備 Pythonインストール pyenv でpythonをインストールします。 [vagrant@ansible ~]$ sudo yum install git [va

  • Ansibleのplaybookからコピペをなくすset_factモジュールの使い方 - Qiita

    よくある課題 Ansibleで条件分岐させるにはplayの中でwhen句を使用する。 1つのtrue/falseの条件があってそれぞれ実行させたいものが違う場合はplayを2つ書くことになる。 しかし正直、普通のプログラム言語ならif-elseで書けるところをplayを2つ並べないとならないというのはいささか美しさに欠ける。実行させたいものが全く違うならまだ良いが、ほとんど一緒なら尚更だ。そのほとんど一緒な部分を修正したくなったら2箇所直さなければならない。 それでも2つならとは思わなくないが、さてtrue/falseの条件分岐が3つあったとしよう。playを8つ書けって? それは勘弁して欲しい。 そんな悩みをある程度解決するのがset_factモジュールである。 set_factの使い方(基編) set_factは変数に値をセットするモジュールである。 この値はスカラーでもシークエンス

    Ansibleのplaybookからコピペをなくすset_factモジュールの使い方 - Qiita
  • ansible.cnfでssh_configを設定する | DevelopersIO

    渡辺です。 2015年はAnsible盛り上がってますね。 大規模な構成管理ツールとしては疑問の声も聞こえてきたりしますが、弊社のAWS環境構築支援のように、ある程度お決まりの設定をサクっと8分組みしたいようなケースでは当に便利です。 そんなAnsibleが手軽に使える最大の理由は、Ansibleがエージェントレスで、対象サーバにSSH接続が可能ならば利用できるという点であることは言うまでもありません。 この辺りもAWSの環境構築とAnsibleの親和性が高い理由のひとつです。 今回のエントリーでは、そんなAWSの環境構築を行う時に、ssh_confとAnsibleを組み合わせる方法を紹介します。 SSH接続と秘密鍵 Ansibleを実行するマシンから対象のサーバにはSSH接続を行う必要があります。 すなわち、秘密鍵が必要です(鍵認証無しでSSH可能な環境は論外で...)。 秘密鍵は、s

    ansible.cnfでssh_configを設定する | DevelopersIO
  • Vagrant + Ansible で開発環境を作るなら ansible_local プロビジョナがいい! - Shin x Blog

    Vagrant 1.8 で、ansible_local という新しいプロビジョナが追加されました。 これは、Ansible をゲスト(VM)側にインストールして、ローカルコネクションで VM 内で実行するものです。これは、まさに待ち望んでいた機能ので紹介します。 Vagrant + Ansible で気を付けること 以前から、Vagrant + Ansible の組み合わせでローカルの開発環境を作るなら、ホスト側に Ansible を入れるのではなく、ゲスト(VM)側に Ansible を入れる方が良いと考えていました。勉強会などでも良く話していたのでお聞きになった方もいるかと思います :) ホスト側に Ansible を入れない理由は、3 つあります。 まず、ホストに Ansible をインストールする手間が増える点です。Vagrant と Virtualbox のインストール(あとコー

    Vagrant + Ansible で開発環境を作るなら ansible_local プロビジョナがいい! - Shin x Blog
  • ansibleからTerraformを使って、一歩進んだサーバー構築自動化!! - Adwaysエンジニアブログ

    こんにちは!入社1年目、インフラの奥村です。 "immutable infrastructure" という言葉を初めて聞いてから半年がすぎました。 サーバー構築する際に冪等性などを意識してansibleのプレイブックを書いたりしています。 デジタルネイティブ世代ならぬ、サーバー構築自動化ネイティブ世代なのです。 今回は、ansibleからTerraformを使って、さらに便利なサーバー構築自動化をしたいと思います! 1.概要 まずはツールの紹介です。 terraformはHashiCorp社製のオーケストレーションツールです。 このterraformを使ってVMware vSphere上に仮想マシンを立ち上げます。 ansibleは構成管理ツールです。デプロイメントツールとして利用されることもありますが、この記事ではサーバーの設定などをするために使用します。 この二つのツールを使ったサーバ

    ansibleからTerraformを使って、一歩進んだサーバー構築自動化!! - Adwaysエンジニアブログ
  • AnsibleによるEC2インスタンスの構築 | DevelopersIO

    渡辺です。 過去にも同様のエントリーが存在するのですが、AWSといえばEC2ということで、最新のAWSモジュールを利用してEC2インスタンスを作成してみます。 Ansibleを使ってEC2インスタンスを立ち上げる | Developers.IO Using Ansible on AWS – EC2インスタンスを作成する | Developers.IO グループ変数でインスタンス定義を明確にする 可読性の高いグループ変数は、このシリーズのテーマです。 今回は、次のようなグループ変数でEC2インスタンスを定義したいと思います。 ec2: - name: FrontWebA instance_type: t2.small image: ami-1a15c77b instance_profile_name: web key_name: dev-key subnet_name: FrontA gro

    AnsibleによるEC2インスタンスの構築 | DevelopersIO
  • group_vars ignored with inventory script in ansible 2.1.1.0 · Issue #16878 · ansible/ansible

    rsakamot
    rsakamot 2017/01/24
    やっぱりgroup_varsが動かない、で揉めてたか..。うちのplaybookも動かなくなって、2.0を使っていましたが。inventoryファイルと同じ階層に置けば 大丈夫そう。
  • Ansibleのlookup pluginについて調べてみた

    Ansibleのlookup pluginについて、あまり良く知らなかったので調べてみた。 長いので先にまとめると、 lookup pluginはwith_*の処理、つまりloopを作るための処理が書かれたプラグインである。 他にlookup('プラグイン名', 引数)の形で呼び出すこともできる。 lookup pluginはAnsibleを実行しているコンピュータで実行される。操作対象のコンピュータ上ではない。 pluginはPythonで実装される。 自作したlookup pluginはplaybookのあるディレクトリにlookup_pluginsというディレクトリを作り配置するか、ansible.cfgの[defaults]セクション、lookup_plugins項に指定されたディレクトリに配置すると利用できる。 参考とした公式ドキュメントは次である。 http://docs.an

    Ansibleのlookup pluginについて調べてみた
  • Ansibleのlookupを使って秘密鍵を配備する | DevelopersIO

    SHU-METAL DEATH。 現在、首都高で渋滞にハマっているので、Ansibleの小ネタシリーズのストックをはきだしています。 Ansibleでサーバの構成管理を行う時、サーバに秘密鍵を配備する場合があります。 この時、秘密鍵を変数化した上でvaultで暗号化する方法が一般的に知られています(Ansible Vaultを利用して秘密情報を暗号化する)。 しかし、vaultパスワードの設定やパスワードファイルの指定が意外とメンドクサイ。 今回はvaultを利用しない方法を紹介します。 構成管理とバージョン管理 秘密鍵を暗号化しない方法を説明する前に、構成管理とバージョン管理について整理しておきます。 Ansibleなど構成管理ツールを利用するメリットのひとつは、サーバの設定を設定ファイルなどで定義し、そのファイルをバージョン管理できることです。 リポジトリでバージョン管理しておけば、変

    Ansibleのlookupを使って秘密鍵を配備する | DevelopersIO
  • Ansible Vault を賢く使う - Qiita

    Ansible でパスワードやAPIキーなどの機密情報を扱う場合には ansible-vault を使うことで暗号化されたファイルとして変数を保存できます。 簡単な使い方は以前書きました Ansible Vault を試す しかしながら、ansible-vault はファイル単位での暗号化であるため、暗号化の不要な項目までまるっと暗号化され、どんな変数が定義されているのかすらわからなくなってしまうという問題がありました。 これは結構不便です。 そんなことをずっと思っていたのですが、ふとドキュメントを読んでいたらこの問題の解決策が書いてありました。 Splitting Out Host and Group Specific Data なんと、バージョン 1.4 という ansible-vault 登場(1.5)以前からある機能でした!! が、 As an advanced use-case,

    Ansible Vault を賢く使う - Qiita