タグ

ansibleに関するaroma_blackのブックマーク (42)

  • Ansibleで構成管理。〜たったひとつの冴えたやりかた〜

    https://ljstudy.connpass.com/event/71037/ でのLT資料です。

    Ansibleで構成管理。〜たったひとつの冴えたやりかた〜
    aroma_black
    aroma_black 2018/07/09
    hash_behavior = mergeでデフォルトの設定をしつつ変数を設定する
  • ansible.builtin.raw module – Executes a low-down and dirty command — Ansible Community Documentation

    Note This module is part of ansible-core and included in all Ansible installations. In most cases, you can use the short module name raw even without specifying the collections keyword. However, we recommend you use the Fully Qualified Collection Name (FQCN) ansible.builtin.raw for easy linking to the module documentation and to avoid conflicting with other collections that may have the same modul

    aroma_black
    aroma_black 2017/08/08
    Python2.4のようなpython-simplejsonがなかったり、Pythonのバイナリがない場合に使う。標準出力、エラー出力、リターンコードが使用可。change handlerはサポートしない。対象ホストにPythonがいらない。Windowsもサポートする。
  • EC2 Systems ManagerでAnsibleを使ってみた - Qiita

    cat << EOF > ${CF_TEMPLATE_FILE_NAME} AWSTemplateFormatVersion: "2010-09-09" Description: JAWS-UG CLI EC2 Systems Manager LT Ansible Resources: VPC: Type: AWS::EC2::VPC Properties: CidrBlock: "10.0.0.0/16" IGW: Type: AWS::EC2::InternetGateway AttachIGW: Type: AWS::EC2::VPCGatewayAttachment Properties: VpcId: Ref: VPC InternetGatewayId: Ref: IGW PublicSubnet: Type: AWS::EC2::Subnet Properties: Avai

    EC2 Systems ManagerでAnsibleを使ってみた - Qiita
  • 【Ansible】独自Plugins-filter_plugins編- - Qiita

    Ansibleを使っていると、無性に独自のFilter Pluginを作りたくなることってありますよね。 ですが、なかなか独自Pluginの作り方について言及している記事が無かったので作ってみました。 今回は文字列のエスケープをしたくなったので、雑なFilter Pluginを作ってみました。 Moduleはインプット/アウトプットが形式に沿っていればどの言語でも良いのですが、PluginはPythonではないといけない模様です。 出来上がりイメージ Before文字列

    【Ansible】独自Plugins-filter_plugins編- - Qiita
  • Setting the remote environment — Ansible Community Documentation

    You can use the environment keyword at the play, block, or task level to set an environment variable for an action on a remote host. With this keyword, you can enable using a proxy for a task that does http requests, set the required environment variables for language-specific version managers, and more. When you set a value with environment: at the play or block level, it is available only to tas

    aroma_black
    aroma_black 2017/02/24
    環境変数設定。ただしshellモジュールでは別シェルで動かすことになるので設定はが反映されないことに注意する。
  • HomebrewとAnsibleでMacの開発環境構築を自動化する | mawatari.jp

    3月20日に13″ rMBP early 2015が手元に届いたので、以下の様なツイートをしながらPlaybookを作っていました。 GUIアプリも含めて全部Homebrewで管理してみようかな。 — まわたりなおと (@mawatarin) 2015, 3月 20 んー?Brewfileで管理できないのか? http://t.co/g8eBr2tInk — まわたりなおと (@mawatarin) 2015, 3月 20 うん。Brewfileの代替はこれがよさそうだな。今夜やってみよう。 http://t.co/mxXRd3IGK2 — まわたりなおと (@mawatarin) 2015, 3月 20 例のごとく、そのとき取り組んだことを整理した上で公開しようとしていたわけですが、その日の夕方、@t_wadaさんによって、Mac の開発環境構築を自動化する (2015 年初旬編)という

    HomebrewとAnsibleでMacの開発環境構築を自動化する | mawatari.jp
    aroma_black
    aroma_black 2017/02/22
    "特にappdirオプションについては、設定を強くオススメします。設定しておかないと、アプリケーションによって/Applicationsだったり~/Applicationsだったりにシンボリックリンクリンクが作られてしまいます。"
  • AnsibleでCSVファイルから参照したパスワードでプロビジョニングする | DevelopersIO

    日、2目のエントリーとなる渡辺です。 先ほどのエントリー(AnsibleによるIAMユーザの管理)では、IAM User/Groupを管理するiamモジュールを紹介しました。 その中でパスワードを扱う場合、valutを利用すると、サラりと紹介しました。 ところが、正直なところあまりvalutを使いたくありません。 編集する時もansibleを流す時にも、valutパスワードを入力するのが億劫なのです。 というわけで、lookupのcsvfileを使用し、パスワードを外部CSVファイルで管理する方法を紹介します。 外部ファイルを参照するlookup Ansibleのlookupは、Ansibleから外部リソースを参照するための機能です。 テキストファイルやテンプレートを参照し、Ansibleのタスクに変数のように埋め込むことができます。 tasks: - debug: msg="{{ l

    AnsibleでCSVファイルから参照したパスワードでプロビジョニングする | DevelopersIO
    aroma_black
    aroma_black 2016/11/01
    “lookupの1つ目の引数にcsvfileを指定することで、CSVファイルを参照し、任意の行の任意のカラムの値を参照することができます。”
  • 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
  • YAMLのエイリアスでAnsibleファイルの重複を減らす | DevelopersIO

    渡辺です。 あまり知られていないかもしれませんが、YAMLでは標準機能としてアンカーとエイリアスがあります。 Ansibleでも利用できるため、構成管理を行う場合に役立つので紹介したいと思います。 冗長化した値を一括管理する 例として、EC2インスタンスを定義したグループ変数があるとしましょう。 ec2: - name: FrontWebA instance_type: t2.small image: ami-1a15c77b instance_profile_name: web key_name: dev_key subnet_name: FrontA group: - Internal - Mainte root_volume_size: 8 assign_public_ip: false - name: FrontWebC instance_type: t2.small image:

    YAMLのエイリアスでAnsibleファイルの重複を減らす | DevelopersIO
  • AWS Playbookの設計ポリシー | DevelopersIO

    渡辺です。 Ansible2.2より、AnsibleのAWS関連モジュールが充実され、AnsibleでAWSリソースの構成管理を行うことが現実味を帯びてきました。 AWSリソースの構成管理を行うには、CloudFormationやteraformなど、他の選択肢も多くあります。 その中でも、EC2インスタンスの構成管理をAnsibleで行っているならば、利用するツールを共通化できるのが最大のメリットです。 今回は、そんなAWSリソースを構成管理するとき、作成するPlaybookの設計ポリシーを解説します。 localhostのlocalコネクションを利用する 一般的に、Ansibleでは、対象ホストにSSH接続を行い、構成管理を行います。 AWSリソースの場合、対象となるのはVPCなど、AWSリソースであるため、SSH接続は行えません。 このようなケースでは、対象ホストにローカルマシンを指

    AWS Playbookの設計ポリシー | 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の冪等性とPlaybook | DevelopersIO

    渡辺です。 Ansibleを利用する時、避けて通れない概念が「冪等性(べきとうせい/idempotence)」です。 冪等性は数学方面の用語で、大雑把に言えば「1回だけ操作を行っても、不数回(N回)行っても結果が変わらない特性」のことを指します。 例えば、有理数の乗算であれば1と0には冪等性があります。 1は、Nに何回かけても結果はNです。 同様に、0は、Nに何回かけても結果は0です。 とはいえ、Ansibleの冪等性は、あくまで構成管理を行う上でのことなので、数学的な冪等性については「そんな概念なんだ」程度の理解で良いと思います。 Ansibleによる冪等性はサーバの状態を保つこと サーバの定義を記述したAnsibleのPlaybookを実行すると、定義に合わせたミドルウェアなどがサーバにインストールされ、サーバの状態が変更されます。 そして、サーバの定義、すなわちPlaybookを変更

    Ansibleの冪等性とPlaybook | DevelopersIO
  • Ansibleチートシート(実行周り) - Qiita

    Playbookの書き方はググればいくらでもサンプルがでてくるんですが、実行の仕方とかまとまってない気がしたので。 Ansibleのセットアップ ドキュメント読もう。Ubuntu系ならPPAあります。 http://docs.ansible.com/intro_installation.html Inventory シンプルな例 /etc/ansible/hostsに置くか、適当なとこにおいて-i(--inventory)オプションないしANSIBLE_HOSTS環境変数でパスを指定。 なおInventoryファイルに実行権限(+x)があるとDynamicInventoryと勘違いされ、実行できないよ!!みたいなエラーが出るので注意。Windowsの共有フォルダをマウントしたら全ファイルに+xついてて嵌りました。 これ作るの面倒 カンマで区切れば引数で直接指定できるようです。カンマで区切れ

    Ansibleチートシート(実行周り) - Qiita
  • Ansible の shell モジュールでチェックモードも考慮して冪等性を保つ - Qiita

    まずは結論から、例えば以下のようなタスクの場合、 uname -a コマンドの結果を /tmp/hoge に出力する /tmp/hoge が既にあるなら実行しない コメントの通りファイルの存在確認なら stat モジュールで十分なのですが、より多くのケース(なにかしらのコマンドの結果を元に実行の有無を制御)を想定してあえて shell モジュールを使います 次のようにします。 - hosts: localhost tasks: - shell: test -e /tmp/hoge register: res always_run: yes failed_when: no changed_when: res.rc != 0 - shell: uname -a > /tmp/hoge when: res|changed これだけなら shell モジュールの creates を使うだけでいいん

    Ansible の shell モジュールでチェックモードも考慮して冪等性を保つ - Qiita
    aroma_black
    aroma_black 2016/08/11
    shellモジュールがchangedになる問題にも使える。
  • ansible-playbookのYAMLを読みやすくする工夫 - Qiita

    Ansibleは勉強中の身なので初歩的な内容かもしれませんが、チュートリアルを見ていて気になったので。 なるべくYAML構文で書く モジュールのオプションをfoo=varみたいに書いている例をたまに見かけますが、横に長くなって読みにくいように思います。 YAMLの「>」(folded block構文)を使えば改行もできますが、そこまでやるなら素直にYAMLの構文で書いた方がいいと思いました。(素のYAMLの方がansible以外のプログラムでも扱いやすくなりますよね) before - name: configure sshd_config lineinfile: dest=/etc/ssh/sshd_config owner=root group=root mode=0600 backup=yes regexp="{{ item.regexp }}" line="{{ item.line

    ansible-playbookのYAMLを読みやすくする工夫 - Qiita
    aroma_black
    aroma_black 2016/08/03
    “YAMLの「|」を使うことで、複数行のシェルスクリプトもそのまま書くことができます。「"」も「'」もシェルスクリプト中では多用するので、YAML上ではシェルスクリプトの文字列自体はクオートしない方がよい”
  • AnsibleでIAM User/Group/Roleを管理する | DevelopersIO

    土日となると天気が悪い北海道の渡辺です。 今日は七夕の創立記念日ということで、AnsibleのAWSモジュールを使ってIAM User, Group, Role を管理する方法を紹介します。 iam / iam_policyモジュール Ansibleのiamモジュールとiam_policyモジュールはコアモジュールのひとつで、AWS上のIAMリソースとポシリードキュメントを管理します。 IAMリソースは、CloudFormationでも管理可能です。 Ansibleのモジュールを利用した場合、ポリシードキュメントの再利用やテンプレートが利用できる点がポイントとなってきます。 iamモジュールでIAM Roleを作成する iamモジュールは、iam_typeでIAMリソースの種類を指定し、User / Group / Roleを作成します。 profileとstateを指定すること以外で特別

    AnsibleでIAM User/Group/Roleを管理する | DevelopersIO
    aroma_black
    aroma_black 2016/07/12
    2.1だとpolicy_jsonが使えない
  • Ansibleのroleを使いこなす - Qiita

    Ansibleのroleを実際に使ってみてわかったことを共有します。さらに便利に活用するtips等ありましたら、ぜひコメントをお願いします。 Ansibleのroleは単にインクルードの単位 最初roleという名前を聞いたときは、webserverとかdbserverといった役割を設定するのだろうと予想しました。が、Rolesのドキュメントを読んで、playbookの一部をインクルードして再利用するための仕組みだということがわかりました。つまり、playbookを分割・構成するコンポーネントという意味合いです。 もともとroleはなくてincludeの仕組みだけありましたが、より便利にするためにroleという仕組みが追加されたという経緯のようです。 例えばnginx, mysqlといった単位でroleを定義するのが良いです。さらにmysql/clientのように階層的なrole名を用いるこ

    Ansibleのroleを使いこなす - Qiita
  • Ansibleでファイルを書き換える時の5パターン | TANKSUZUKI.COM

    Ansibleで設定ファイルを書き換える時に使うモジュールを紹介します。 パターンとしては5種類が考えられます。 それぞれ特徴があるので、状況に応じて使い分けするのが良いと思います。 モジュール名 特徴

  • Ansibleのテスト事情 | DevelopersIO

    テストしてますか? 渡辺です。「進捗どうですか?」のダメージは計り知れないことはご存じかと思いますが、「テストしてますか?」のダメージも侮れません。 前者はほぼ全てのエンジニアに有効なアタックですが、後者はそれなりの経験を積んだエンジニアにしか有効でない点は異なりますね...。 さて、Ansibleを運用してくるとなれば、どうしても「どうやってテストをすべきか?」という問題にぶち当たります。 そこで、Ansibleを運用する中でのテストの考え方についてまとめておきます。 Ansibleの考え方とテスト Ansibleのような宣言型の構成管理ツールが登場するまで、サーバ構築の自動化といえばセットアップスクリプトの実行でした(自動化されていない場合は、ひとつひとつコマンドを打ち込んでいたでしょう)。 例えば、CloudFormationのcfn-initのUserDataでは次のようなセットア

    Ansibleのテスト事情 | DevelopersIO
    aroma_black
    aroma_black 2016/05/26
    ansibleのassertでは不十分、playbook単位でインテグレーションテストすべき。
  • Ansibleのモジュール開発(実践編) | DevelopersIO

    はじめに こんにちは、昨日もサバゲーでたくさん撃たれてきた藤です。 前々回のAnsibleのモジュール開発(基礎編)、前回のAnsibleのモジュール開発(Python編)とAnsibleのモジュール開発する上でのルールや便利なユーティリティライブラリの使い方をご紹介しました。 今回のエントリでは実際にユースケースに則って、一つのAnsibleモジュールを作成してみます。 その他のAnsibleのモジュール開発シリーズは以下をご参照ください。 Ansibleのモジュール開発(基礎編) Ansibleのモジュール開発(Python実装編) Ansibleのモジュール開発(テスト編) ユースケース AWS環境では標準AMIにSwap領域が含まれていないことが多くあります。もちろんSwapさせないメモリ設計が一番ですが、安全を取ってSwap領域は確保しておきたいこともありますよね。そんなわけで

    Ansibleのモジュール開発(実践編) | DevelopersIO