この記事は、Calendar for Ansible | Advent Calendar 2021 - Qiitaの23日目の記事になります。
半年前くらいからansible-runnerをansible/ansible-playbookの代替として使っているのですが、 Ansible Runnerの理解が不足していて、あまりメリットを教授できていないので、改めてAnsible Runnerに入門しようと思います。 理解を深めるにあたって、実際に環境を用意してAnsible Runnerのdemoを元に実行し、その結果を確認します。
今回の実行環境の構築方法については、こちらを参照ください。
ansible-runnerについて “Ansible Runner is a tool and python library that helps when interfacing with Ansible directly
or as part of another system whether that be through a container image interface, as a standalone tool,
or as a Python module that can be imported.”
Ansible RunnerからAnsibleを直接実行するツールであり、 別のシステムがAnsible Runnerを仲介してAnsibleを実行するためのツールでもあり、 PythonがAnsible Runnerを仲介してAnsibleを実行するためのライブラリでもある という理解です。 間違えていたら、教えていただけるととてもありがたいです。
“The goal is to provide a stable and consistent interface abstraction to Ansible....
構成 ansible-runner実行環境 pythonのインストール asdfとは パッケージ管理ツールです。 今まで開発言語はanyenvを使ってきましたが、同僚のすすめでasdfを試したところ、開発言語以外のアプリケーションも管理できることを知り、 一元管理ができて便利だと思い、現在も使っています。
pythonのbuild実行のためにパッケージをインストール
私のPCはUbuntuなので、以下のパッケージをインストールします。
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev asdfでpythonのインストール まず、asdfで管理できる対象か確認します。
asdf plugin list all | grep python 管理対象にあるので、pluginを追加します。
asdf plugin-add python pythonの最新バージョンをインストールします。
asdf install python latest 使用するバージョンを指定して完了です。 globalにしておくことで特に私は問題ないので、globalにしています。 systemのpythonに影響を及ぼしたくない等あれば、開発したいディレクトリに移動しlocalを指定すると良いと思います。
asdf global python 3.10.1 ansible & ansible-runnerのインストール pipでansibleとansible-runnerをインストールします。
pip install ansible ansible-runner ansible-runnerリモート実行環境 ansible-runnerのリモート実行の動作を確認するために、以下の環境を準備します。
素のOSのサーバ環境 AWXの実行環境 それぞれの詳細は以下に記載します。
virtual machine virtual machineを作成するのに、viratulboxとvagrantを使用します。 ここでは詳細は省略します。 これらがインストールされていることを前提として進めていきます。...
「入門監視」について 大きく2部に別れており、前半の1章から4章は、監視の基本原則について、
後半の5章から11章は監視の戦略について、それぞれ書かれている この記事は、前半部分の「監視の基本原則」から学んだことについて書いています。 書籍はこちら 学んだこと 本書を通して、以下のことを学びました。
ユーザ視点優先の監視を行う 監視ツールの得意とするところを理解したうえで、複数のツールを組み合わせる 監視は自動化する それらについての詳細は以降で述べていきます。
私の監視ツールの遍歴 本題に入る前に、今まで私が経験してきた監視ツールを書き出してみました。
振り返ると、昔は動いているとどうかを監視するのが主目的だった気がします。
技術の進歩や時代背景もあるのかもしれないですが、最近は動いているのは当たり前で、
多くの場合そのサービスの品質を向上させるために監視をすることが目的となっている気がします。
Netseint(Nagios) / Bigbrother / MRTG 約20年ほど前にインフラエンジニアとして働き出した頃はこういったツールが主流だったと記憶している Nagios / monit / munin それからしばらくは、Nagiosが主流で、メトリクス監視のツールがMRTGからMuninに置きかわったのは10年くらい前かな Nagios / monit / Prometheus 私の環境においては、未だNagiosがメインで、メトリクス監視のツールがここ3年くらいでPrometheusに置きかわった ユーザ視点優先の監視を行う この本を流し読みして一番印象に残ったのが、ユーザ視点優先で監視を行うことです。
ツールの遍歴のところで少し触れましたが、一昔前の監視は主にシステムがどういった状態にあるのか、
システムは自分たちが設計した範囲で正常に可動しているか等、システムを中心とした監視をしていた気がします。
少なからず、私においてはその認識で監視について考えていました。
また、アラートになる=サービスに支障がでるなので、そうならないように、
如何に事前にアラートの兆候を検知するかに躍起になっていたのを思い出します。
そのため、Nagiosのwaringアラートを大量に出していた気がします。この本でいうところのアンチパターンに含まれる監視です。
今はどうかというと、時代の背景(いろんなポジションでユーザファーストの考え方が浸透している)のもあり、ここ5年くらいはユーザ視点で物事を考えることが私自身も増えて来た気がします。 そんな中でシステム構成を変更するタスクを行う機会があり、それに合わせて監視を見直そうと思い、本書を読みました。
「ユーザ視点優先で監視を行う」という一文に目がとまり、当たり前と思う半面、今の監視はユーザ視点でできているか?という疑問もありました。
私の業務上の責務はメール・DNSの安定稼働と信頼性向上なので、メール送信という観点で考えたことを記載します。
ユーザ視点でメール送信の監視を行う まずは、ユーザがメールを送信する流れを考えました。
メールソフトを起動する メールを書く 送信ボタンをクリックする 上記でサーバとの接続の部分はどこになるかというと、「送信ボタンをクリックする」の部分です。
送信ボタンをクリックすると、サーバ側では大きく以下の3つが行われます。...