The Qiita Advent Calendar 2020 is supported by the following companies, organizations, and services.
はじめに 現場でAnsibleを使う機会ができたので、勉強のためにDockerコンテナ上でAnsibleを動かしてみました。 対象 Ansibleを実際に動かしてみたい人 Ansibleとは? Ansibleとは、システム構成、ソフトウェアの展開等、様々な設定作業を自動するツールである。 PlaybookというYAML形式のテキストファイルにタスクを記述し、それをAnsibleで実行させることで多様な処理を実現する。 メリットとして、下記2点が挙げられる。 設定ファイルがyamlでの記述になっておりシンプル 冪等性(何度同じ操作しても、同じ状態にする)を担保 試したこと Ansibleコンテナと、環境を適用したいターゲットコンテナを立ち上げる Ansibleコンテナからplaybookを実行して、ターゲットコンテナにgitをインストールする ファイルの構成 . ├── ansible │
AnsibleのcopyモジュールはAnsible実行マシンと対象マシンの間のコピーとなり、 リモートマシン内部でのコピーには未だ対応していないようだ。 unarchiveなどはcopy=noにしておくとリモート内部での操作となるのだが・・・ てなわけでシェルを使わざるをえないのだが、すでにファイルが存在する場合は実行して欲しくない。 なのでcreatesを使うとファイルがある場合はskipする。 (ただしあるかどうかだけで中身のチェックはしないので、厳密にはこの後diffを取るほうが良いかも?) - name: catalina.properties配置 shell: creates=/var/tmp/hoge.txt cp ~/hoge.txt /var/tmp/hoge.txt
それまで使う必要が無かったのですが、仕事で必要になって調べた際、時間を使ってしまったので、ブログ記事にして記録を残しておきます。基本、公式ドキュメントを読めばいい話なのですが、一応詰まった話なので供養。 ansibleを使用する際、普通なら必要になる変数はgroup varsやhost varsを記載しているファイルに値を書いておけばいいのですが、ansible実行時に値を書き換えたいときが発生すると ansible-playbookコマンドの -e オプションを使って渡す必要が出てきます。 ansibleの公式ドキュメントのUsing VariablesのPassing variables on the command lineを読めば分かるとおり、以下のようにJSON形式の文字列を渡すことができます。 $ ansible-playbook release.yml --extra-var
Ansibleを使ってWindows Serverを操作してみたので、その時のメモを引っ張り出して作成いたしました。 内容は、AnsibleでWindows Serverを操作するための準備作業です。(win_pingを使った動作確認をします) 「Ansibleでサーバを管理してみたい」とお考えの場合、WindowsはLinuxほど簡単に行かない部分があることをご認識いただけたらと思います。 公式ドキュメントを参考としております。最新の情報などは、こちらから確認できると思います。 また、初期設定等が行える公式スクリプト(ConfigureRemotingForAnsible.ps1)が用意されていますが、こちらの記事では使用しておりません。 (ちなみに、Linuxの場合はsshが通ればほぼ使えるはず) Linuxの前提条件 ssh接続が可能 Python 2 (version 2.6以上)
IT Leaders トップ > テクノロジー一覧 > 開発ツール/プラットフォーム > 新製品・サービス > レッドハット、AnsibleのIaCコードを自動生成する「Ansible Lightspeed」をリリース 開発ツール/プラットフォーム 開発ツール/プラットフォーム記事一覧へ [新製品・サービス] レッドハット、AnsibleのIaCコードを自動生成する「Ansible Lightspeed」をリリース コード生成AI「watsonx Code Assistant」を利用 2023年11月10日(金)日川 佳三(IT Leaders編集部) リスト 米レッドハット(Red Hat)は2023年11月1日(米国現地時間)、IaCコード自動生成ツール「Red Hat Ansible Lightspeed with IBM watsonx Code Assistant」をリリースした
true / false 判定 when に変数を渡せば true / false の判定が出来る。 when: some_variable when: not some_variable Boolean以外が入った変数も判定条件として使える。 たとえば文字列の場合は、値が存在すれば true と、空であれば false として評価される様子。 is defined 変数が定義済みかどうかを判定できる。 when: some_variable is defined when: some_variable is not defined is succeeded / is failed / is changed / is skipped 変数が辞書 (ハッシュ) の場合は、以下の特殊文法が使える。 when: dictionary is succeeded when: dictionary i
■ はじめに role を構成する際、vars ディレクトリ配下に main.yml を作成して、変数を読み込ませます。 普通に考えると、vars/main.yml という1つのファイルしか読み込めなさそうですが、複数のファイルに分割しておきたいこともあるかもしれません。 公式ドキュメントに載っていたわけではありませんが、vars ディレクトリ配下にさらに main ディレクトリ を用意して、その中に変数ファイルを置いておくと、まとめて読み込んでくれました。 「試したらできた」というレベルではありますが、この記事では簡単な例を元にして説明します。 環境 Ansible 2.9.0 ※ 将来仕様が変更されるかもしれませんのでご了承ください。あまりコードを追えていないのですが、おそらく vars 読み込み時に、find_vars_files メソッド が allow_dir=True で呼ばれ
アドウェイズエンジニアブログからのお知らせ アドウェイズエンジニアブログの Twitter アカウントがありますのでぜひフォロー、いいね、リツイートをよろしくお願い致します!!! https://twitter.com/ADWAYS_ENGINEER こんにちは。まっちゃんです。 最近学生時代から住んでいた狭いワンルームアパートから引っ越し、広いお部屋を手に入れることができました。 リモートワークを行い早1年、ようやく在宅勤務環境に投資を行うことができるため、快適な仕事環境を作りたい欲が日々高まってます。 本日は定期的に発生しているファイル取得や提出をGitLab CIを用いて改善したものを部署のボスからあとよろされて一部横展開した話を書きます。 実際に一部定期作業のファイル抽出を置き換えることができ、他の方に定期作業の委託ができている状態です。 GitLab CI でのジョブ実行が良いぞ
これは Ansible 3 Advent Calendar 2019 の21日目の記事です。 ■ はじめに NetBox を インベントリーとして利用する 以前「[Ansible] NetBox モジュールで Site や Device を登録する(Collection モジュール編) - てくなべ (tekunabe)」で、Ansible から NetBox の Device を登録する方法をご紹介しました。 今回は NetBox に登録された Device を、Ansible のインベントリーとして利用する方法をご紹介します。 Ansible 2.8 で追加された、NetBox Inventory Plugin を利用します。 YAML で簡単な設定ファイルを書くだけで、動的なインベントリとして扱えるようになります。 ■ NeBox上の状態 まず、今回インベントリとして利用する Net
本記事はAnsible 2 Advent Calendar 2019(通称:裏アドカレ)の23日目のエントリになります。 Ansibleの技術的な話でなく、便利に使うツールの話です。 TL;DR Ansibleのドキュメント検索とモジュール・プラグインのGitHub上のソースへのアクセスが簡単になるChrome拡張作ってみました。 usansible - Chrome ウェブストア このChrome拡張を入れると、次の2つの機能が使えるようになります。 アドレスバーにusaと入力すると、Ansible Documentationサイトの検索モードになるので、そのままキーワード入力してEnter押下すればSearch Resultへ一気に飛べます モジュールまたはプラグインのドキュメントページの右上の"Edit on GitHub"の横に"View Source"というリンクを差し込みます。
オンプレとAWSのハイブリット構成で、数千台の仮想マシンを Ansible で構成管理している環境で、実際に経験した問題と、有効だったリファクタリングについて説明します 少し前にTweetした↓の内容を、より詳細に書いています Ansibleのベストプラクティスでplaybook, inventory, vars, rolesを全部独立したディレクトリで管理してるけど、これスパゲッティにならずにメンテナンスできるのだろうか? 弊社では無理でinventoryごとにディレクトリ分割してplaybook, role, varsはinventoryにひもづけてます — 入水岬@インフラエンジニア (@Mjusui) September 28, 2019 気がついたら、こんな事態に 社内でサービスの新機能開発プロジェクトが進行している中、インフラエンジニアとして、新機能用のサーバ構築をしていたとき
■ はじめに Red Hat Enterprise Linux 8 (以下、RHEL 8)に、Ansible Tower のアップストリームである AWX をインスールする手順をまとめます。 環境 RHEL 8.0 on AWS EC2 t2-medium (ami-0520e698dd500b1d1) Python 3.6.8 デプロイ方法 docker-compose AWX インストール Playbook 実行用 Ansible 2.8.5 AWX 7.0.0 公式の手順 をベースにして、要件や遭遇したエラーに応じて手順を加えています。 なお、AWX は開発スピードが早く、ここで示した手順がすぐに廃れてしまう可能性もありますのでご了承ください。また、とりあえず検証目的で構築する手順ですので、一部ワークアラウンド的になっています。パスワードのデフォルトです。 ■ 各種準備 必要パッケー
この記事は、Kubernetes3 Advent Calendarの6日目の記事です。 Kubernetesのoperatorがansibleでも書けるようになっていますね。 インフラエンジニアであるところの私にとっては、とても嬉しいところで、golangは手も足も出ませんが、ansibleならどんと来いって気持ちになれます。 Ansibleでoperatorを書く記事は、結構出回っていて、特に Ansible Operator Overviewは、デモ用の環境で、実際に手を動かしながら、ansibleのoperatorを作成できるのでオススメです。 ↑ のデモを一通りやった方が、実際にoperatorを作ってみよう、となったときに役立ちそうなTipsをご紹介します。(一部デモと内容重複もあります) この記事では、↑ のデモでも使っているoperator-sdkを使っています。operat
■ はじめに Network Features Coming Soon in Ansible Engine 2.9 を見ているときにたまたま知ったのですが、モジュールのオプションのデフォルトを自分で指定できる module_defaults というディレクティブがあります。 タスクごとに、毎回指定しているようなオプション(リージョン名や認証情報)は、この module_defaults を利用すると負担が経験されるかもしれません。 docs.ansible.com module_defaults がどのバージョンから利用できるようになったのか、changelog ではうまく見つからなかったのですが(PRはおそらくこちら)、少なくとも、Ansible 2.6 のドキュメントには module_defaults の説明ページがあります。 ■ 基本的な使い方 例えば以下のように、module_d
CIで回そう! 前回まででついにAnsible + ServerspecでMacの構成管理ができたわけですが、まだ残ってることがあります。 それがCIにのせることです。 は? 意味あるの?と思われた人も多いと思いますが、そこそこ意味のある活動になります。 なぜなら… 一度プロビジョニングしたMacは初期化しない限り二度ときれいなMacにはならないからです。 なんかの格言ぽいですが、常にクリーンなMacで作った構成管理を確かめてみたい、ということでCIに乗っけてしまいます。 Table of Contents macOS X が使えるCIってあるの?結論から先にかけばあります。 私の大好きなCIのCircleCIだってmacOS XのOSイメージは用意されています。 ですが、CircleCIの場合で$39/Monthとお金がかかってしまいます…。(2019/10現在) こんな個人プロジェクト
Red Hat - Japan (レッドハット株式会社) @RedHatJapan #ansibleautomates 2022 Day1 セッション紹介です。 基調講演では、楽天カード様にご登壇いただきます。自律的な自動化組織を作るためのポイント、インフラのセルフサービス化の進め方についてお話しいただきます。ご期待ください! ➡️ red.ht/3cWn2qA pic.twitter.com/tGsUesBaA8 2022-08-30 18:00:03 Red Hat - Japan (レッドハット株式会社) @RedHatJapan 明日開催!#ansibleautomates セッション紹介 エーピーコミュニケーションズ様とKDDI様に、ネットワークの自動化をマルチテナントでセルフサービス化するためのポイントについて キンドリルジャパン様に、データドリブンによるインフラ運用の自動化に
ヤムル山では、Ansibleの基礎、自分自身の作業・タスクをAnsibleで自動化するために参考となる情報源やその活用方法について理解することができます。これからAnsibleを活用して自動化に取り組んでいこうとしている方におすすめの初級者コースです。ヤムル山の登頂を通して、Ansibleについての理解を深め、適用領域のヒントを知り、Ansibleを活用した自動化の基礎力を身に付けましょう。 およそ4時間でヤムル山の登頂が可能です。はじめての方は各ステップで振り返りをしながら2−3日かけて進めると良いでしょう。 Ansibleについて知る (所要時間:10分) Ansibleについて聞いたことがあるがどういうソフトウェアなのか、何を実現でき、どのような事例があるのかを知ることができます。まだAnsibleを聞いたばかりの方はしっかりこのステップから準備しましょう。
Rundeck実行環境をAnsibleで構築できるようにしました。 いくつかアンチパターンがあると思いつつ。。記録として投稿します。 Ansible実行環境 Ubuntu 20.04 Ansible 2.12.7 Python 3.8.10 Rundeck構築環境 Ubuntu 20.04 Python 3.8.5 10.0.0.8 hosts, Playbook hosts - name: rundeck hosts: become: true tasks: - name: install openjdk apt: name: openjdk-11-jre-headless update_cache: yes - name: pre1-1 get_url: url: https://raw.githubusercontent.com/rundeck/packaging/main/scri
AnsibleをAWS Systems Managerから実行するCI/CDを構築する。(その2:CodeCommitの準備)AWSCodeCommit はじめに 前回はSystems ManagerのRunCommand機能を使ってAnsibleを実行してみました。 今回はAnsibleのPlaybook等を格納するGitリポジトリをCodeCommitを使用して作成&アップロードしてみようと思います。 【前】AnsibleをAWS Systems Managerから実行するCI/CDを構築する。(その1:Systems ManagerからのAnsible実行) 【次】AnsibleをAWS Systems Managerから実行するCI/CDを構築する。(その3:SNS、Chatbotの準備) CodeCommitとは CodeCommitはAWSで提供しているGitリポジトリとなり、
はじめに Cisco IOS のネットワーク機器 から 指定の宛先に ICMP による Ping を実行する cisco.ios.ios_ping というモジュールがあります。 指定した宛先などのオプションに基づいて ping コマンドを生成し、IOS の機器上で実行して結果を表示します。 [Ansible] -----> [IOS] -- ICMP Ping -->[dest指定先] この cisco.ios.ios_ping モジュールに、ping コマンドの df-bit と size オプションに相当するオプションを追加しました。cisco.ios collection 1.3.0 としてリリースされました。 cisco.ios collection 1.3.0 CHANGELOG cisco.ios.ios_ping モジュール最新ドキュメント この2つのオプションの使い方をご紹
以下のホスト情報で接続を確認。 $ cat hosts vm-machine ansible_host=192.168.62.130 ansible_port=22 ansible_user=root ansible_ssh_pass=root_pass 以下のコマンド実行。 ansible all -i hosts -m ping すると、"to use the 'ssh' connection type with passwords, you must install the sshpass program"というエラーが。 vm-machine | FAILED! => { "failed": true, "msg": "to use the 'ssh' connection type with passwords, you must install the sshpass prog
いまさら Ansible Vault で変数とファイルを暗号化して、Vault パスワードをスクリプトで管理するAnsibleansible-vault Ansible Vault については多くの情報が公開されていますが、ここでは要件を以下の 3 点だけに絞って、簡単に実現する方法をまとめました。 機密情報の変数(パスワードなど)を暗号化する ターゲットに配置するファイル(秘密鍵など)を暗号化する Vault パスワードをスクリプトで管理する 参考: Ansible Vault — Ansible Documentation 確認環境: Ansible 2.10.7 Ubuntu 20.04 / Debian 10 (buster) 準備: Vault パスワードを設定する まず最も簡単な方法で Vault パスワードをファイルで設定します。 ここではパスワードを my_vaultp@s
使用する変数 AnsibleではGather_factにより実行先の情報について取得できますが、OSとアーキテクチャは以下の変数で判別できます。 OSansible_os_family ansible_distributionアーキテクチャansible_architecture 実際にRock64に対して実行し取得した情報の一部を抜粋したものがこちら。 取得例 "ansible_architecture": "aarch64", "ansible_bios_date": "NA", "ansible_bios_version": "NA", ・・・ "ansible_distribution": "Ubuntu", "ansible_distribution_file_parsed": true, ・・・ "ansible_os_family": "Debian", "ansible_p
11 月の Red Hat Ansible Automation Platform のリリースで、50 を超えるネットワークリソースのモジュールがリリースされました。これにより、ネットワークデバイスの自動化をより容易に、細かい設定なしで実施できるようになります。Andrius のブログ記事では、新しいリソースモジュールに加えて、ファクト収集の強化について紹介しています。この強化により、すべての新しいリソースモジュールでネットワークデバイスについてのより広範なファクトが得られるようになります。 このブログ記事では、目立たないけれど強力なもう 1 つの強化点を取り上げます。 その強化とは、ネットワークデバイスで wait_for_connection モジュールを使用できるようになったことです。デバイスの再起動やオフライン化の操作を含む Ansible Playbook を運用している場合、こ
Ansibleで、Amazon S3にディレクトリのバックアップを午前3時に実行するcronを設定する。 cron-s3.shには、AWS CLIでS3とsyncするコマンドが記述されている。 - name: S3バックアップのシェルを配置 become: True template: src: templates/cron-s3.sh.j2 dest: /root/cron-s3.sh - name: cron設定 become: True cron: name: S3バックアップ minute: 0 hour: 3 job: "sh /root/cron-s3.sh 1>> /var/log/nas-log/exec.log 2>> /var/log/nas-log/error.log" state: present
- name: usermod postgres password user: name: "postgres" password: "{{ user_passwd_postgres | password_hash('sha512') }}" これをやってしまうと毎回ランダムなsaltでハッシュ化されたパスワードが生成されるため、都度chagned = Trueとなってしまう。 ランダムにしないためのsalt? password_hash('sha512','salt')のように指定すると、毎回saltが固定されるためハッシュ化された値は同じになる。 - name: usermod postgres password user: name: "postgres" password: "{{ user_passwd_postgres | password_hash('sha512','sal
こんにちは! ライトウェルで営業マネージャーをしております小林と申します。 「テクニカルなことは分からないので、営業はブログが書けない!」と逃げておりましたが 「セミナーレポートくらい書けるだろう!!」とSEメンバーから追い込まれまして・・・初めてブログを投稿することになりました。 今後も追い込まれてブログを投稿する機会があると思いますので、是非お読み頂けると頂けると幸いです。 さて、4月17日にアセンテック社とライトウェル合同でPCの自動展開に関してのセミナーを開催いたしました。 今回のブログでは、セミナー内容やご来場頂いたお客様の反応をご紹介したいと思います。 セミナー内容 ◆セミナータイトル◆ Windows7サポート終了迫る!自動化ツールと先進ハードウェアで Windows10展開・運用を容易に。 ◆セッション内容◆ ①Windows10への切り替えをスピーディーに低コストで!An
はじめに Redhatさんが定期的に開催しているAnsibleのもくもく会に参加してきたので、その内容のまとめです。 ※この勉強会は「ブログ枠」という参加枠があり、そこで参加した人は内容をレポートすることになっています。(要は許可とってます) 公開されている資料はこちらです。 a10用Ansibleモジュールはこちら ※若干注意事項あり(後述) A10 vThunderとは 今回の題材はA10 Network社が提供しているThunder ADC(Application Delivery Controller)という機材に対するAnsibleの操作になります。 そもそもこのADCが何なのかすら知らなかったのですが、基本的にはロードバランサーと同じ役割を果たすようです。ただし、セッションをパススルーするのではなく、自身がアプリケーションの応答を返すことができる点が異なるとのこと。今回の資料も
こんにちは! BFT名古屋支店の、佐野です。 いよいよ2020年も残すところ1ヶ月となりました。 様々な変化が起こり、季節の境目も曖昧になりつつあることもあって、いつもと同じ1年だというのに妙に長く感じた気がします。 さて、今回はオープンソースの構成管理ツールであるAnsibleにおいて、従来からある無償提供のコミュニティ版(現在は“Ansible project”)と、Red Hatから提供されている有償のエンタープライズ版(現在は“Ansible Engine”)の違いについてと、エンタープライズ版の付加機能ソフトである“Ansible Tower”、そのコミュニティ版として位置づけられている“AWX Project”の違いについてお送りさせて頂きます。 はじめに この記事を書くに至ったきっかけとして、とある案件を進めるうえで以下のような質問を頂いたことがあります。 「Ansibleに
今回のストーリー Clusterのホストに6.7U3になるパッチをシーケンスに適用していきます。 パッチダウンロード先 以下サイトから対象のパッチをダウンロードします。 https://my.vmware.com/ja/group/vmware/patch#search Playbook ESXiパッチ当てのタスクは main.yml と esxi_patch_tasks.yml から構成されています。 main.ymlでは、パッチのアップロードや削除およびESXiの台数分だけesxi_patch_tasks.ymlをループします。 esxi_patch_tasks.ymlは実際にESXiパッチを適用する処理が実装されています。 注意点: ESXi名の名前解決はAnsibleを実行するホストから出来る必要があります main.yml
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く