<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>juehara-crypto&apos;s Tech Blog</title><description>Ansible・インフラ・自動化をテーマにした技術ブログ</description><link>https://juehara-crypto.github.io/</link><item><title>「Ansibleは冪等なのに、なぜサーバは壊れていくのか」 第0回：なぜAnsibleで管理しているのにサーバはずれていくのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-drift/ansible-drift-00/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-drift/ansible-drift-00/</guid><description>構成ドリフトを「Playbookで定義したdesired stateと実際のサーバの状態がずれていく現象」として定義し、冪等性シリーズとの違いを整理する。ドリフトが「Ansibleが実行されていない時間」に起きる問題であることを理解する。</description><pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate></item><item><title>「Ansibleは冪等なのに、なぜサーバは壊れていくのか」 第1回：なぜ手動変更はAnsibleの管理を壊すのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-drift/ansible-drift-01/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-drift/ansible-drift-01/</guid><description>障害対応や一時的な直接編集がドリフトを生む構造を、`template`と`lineinfile`の挙動の違いを通して理解する。手動変更が「次にAnsibleが実行されるまで気づかれない」空白を作ることを整理する。</description><pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate></item><item><title>「Ansibleは冪等なのに、なぜサーバは壊れていくのか」  第2回：なぜドリフトは`--check`で検知できないのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-drift/ansible-drift-02/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-drift/ansible-drift-02/</guid><description>`--check`/`--diff`モードをドリフト検知の手段として使う場合の限界を整理する。検知できるケースと検知できないケースを実機で切り分け、「`--check`で問題が出ない＝ドリフトがない」ではないことを理解する。</description><pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate></item><item><title>「Ansibleは冪等なのに、なぜサーバは壊れていくのか」  第3回：なぜドリフトは気づかれないまま進むのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-drift/ansible-drift-03/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-drift/ansible-drift-03/</guid><description>`changed`が出ない「静かなドリフト」の構造を扱う。cronジョブやアプリケーションの自己書き換え、パッケージの自動更新など、Ansible管理外で起きる変化がPlaybook実行結果に現れない理由を理解する。</description><pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate></item><item><title>「Ansibleは冪等なのに、なぜサーバは壊れていくのか」  第4回：ドリフトを検知して修正する設計</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-drift/ansible-drift-04/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-drift/ansible-drift-04/</guid><description>シリーズの結論として、ドリフトを「防ぐ」「検知する」「修正する」の3つの設計パターンを整理する。定期実行・アラート化・自動修正フローなど、運用に組み込むための具体的な設計を扱う。</description><pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate></item><item><title>「Ansible×TerraformをGitOpsで回す」〜Terraformプロバイダーを問わない構成管理の自動化〜 第1回：なぜ「Gitがインフラの唯一の真実」なのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part1/ansible-gitops-part1-01/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part1/ansible-gitops-part1-01/</guid><description>GitOpsの4原則を評価軸として、AnsibleとTerraformがそれぞれどの原則を満たし、どの原則を満たさないのかを整理する。push型構成の立ち位置を示したうえで、Gitを経由しない手動変更、tfstateの観測範囲外で起きる変化、収束処理が走らない期間という、「Gitが唯一の真実」が崩れる3つの経路を示し、そのうち2つを実機で確認する。</description><pubDate>Sun, 27 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「Ansible×TerraformをGitOpsで回す」〜Terraformプロバイダーを問わない構成管理の自動化〜 第2回：AnsibleとTerraformのGitOps上での責務分担</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part1/ansible-gitops-part1-02/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part1/ansible-gitops-part1-02/</guid><description>AnsibleとTerraformの責務分担を、「ツールの担当範囲」ではなく「コミットされた変更の種類ごとに必要な実行」として捉え直す。変更の3分類、どちらのツールでも書ける設定の判定基準、AnsibleとTerraformの接続面がGitの外にあることを整理し、変更の種類ごとに必要な実行順序を示す。</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「Ansible×TerraformをGitOpsで回す」〜Terraformプロバイダーを問わない構成管理の自動化〜 第3回：GitリポジトリとAnsibleの構造設計</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part1/ansible-gitops-part1-03/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part1/ansible-gitops-part1-03/</guid><description>Gitリポジトリの構造を、コミットされた変更に対してどのツールの判定から始めるかを決めるための設計として扱う。変更の分類をパスで表現するディレクトリ構成、Gitに置くものと置かないもの、モノレポとマルチリポの選択基準、mainを唯一の真実とするブランチ運用を整理し、mainへの直接プッシュを防げない環境では、強制する場所を適用前に移す方針を示す。</description><pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「Ansible×TerraformをGitOpsで回す」〜Terraformプロバイダーを問わない構成管理の自動化〜 第4回：ローカルGitea vs GitHub Actionsの選択基準</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part1/ansible-gitops-part1-04/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part1/ansible-gitops-part1-04/</guid><description>Gitリポジトリのホスティング先とパイプラインの実行場所の選択を、機能の比較ではなく、ランナーから操作対象に届くか、何を外部に預けるかという構造の問題として扱う。GitHubのホステッドランナー、self-hostedランナー、セルフホスト型Git基盤（Gitea）を、到達性、状態の永続性、機密情報の置き場所、運用負荷の4つの基準で比較し、選択が信頼の境界の要件で決まることを示す。本シリーズは、GitHubと、操作対象と同じネットワーク内に置くself-hostedランナーを採用し、リポジトリを非公開で運用する。</description><pubDate>Sun, 04 Oct 2026 00:00:00 GMT</pubDate></item><item><title>「Ansible×TerraformをGitOpsで回す」〜Terraformプロバイダーを問わない構成管理の自動化〜 第5回：GitHub ActionsからAnsibleを実行する基本構成</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part2/ansible-gitops-part2-05/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part2/ansible-gitops-part2-05/</guid><description>プルリクエストで確認し、マージで適用するGitOpsの基本の流れを、GitHub Actionsのself-hostedランナーの上に実装する。リポジトリをterraform/とansible/に分け、インベントリと鍵を実行時にtfstateから用意したうえで、変更されたパスによるジョブの切り替えと、Terraform→Ansibleの実行順序の保証を組む。暫定のまま残る部分と、AWS・GCPへの書き換え点もあわせて示す。</description><pubDate>Mon, 05 Oct 2026 00:00:00 GMT</pubDate></item><item><title>「Ansible×TerraformをGitOpsで回す」〜Terraformプロバイダーを問わない構成管理の自動化〜 第6回：tfstateの管理とパイプラインの同時実行</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part2/ansible-gitops-part2-06/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part2/ansible-gitops-part2-06/</guid><description>self-hostedランナーで動くパイプラインで、tfstateをどこに置き、複数の実行が重なったときに何がtfstateと操作対象を守るのかを扱う。作業ディレクトリに置いたtfstateの扱いを確認したうえで、置き場所を「消えないか」「ロックが効くか」「共有できるか」で選び、リモートバックエンドに移行する。同時実行は、パイプラインの直列化とTerraformのstateロックの二重で防ぐ設計とし、Ansibleにはロックがないという非対称性を示す。</description><pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate></item><item><title>「Ansible×TerraformをGitOpsで回す」〜Terraformプロバイダーを問わない構成管理の自動化〜 第7回：planのレビューと承認ゲート</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part2/ansible-gitops-part2-07/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part2/ansible-gitops-part2-07/</guid><description>プルリクエストで確認したplanと、マージの後に適用される内容が食い違う構造を確認し、保存したplanを適用する方法と、保存した後にtfstateが変わった場合の扱いを確かめる。Ansibleの`--check --diff`を承認の材料にしたときに見えない変更を示したうえで、適用系を手動で起動するワークフローに分離し、起動の操作を承認とする承認ゲートを設計する。</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate></item><item><title>「Ansible×TerraformをGitOpsで回す」〜Terraformプロバイダーを問わない構成管理の自動化〜 第8回：GitOpsの品質ガードレールとしてMoleculeとansible-lintを組み込む</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part2/ansible-gitops-part2-08/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part2/ansible-gitops-part2-08/</guid><description>ansible-lintとMoleculeを、テストの設定としてではなく、チェックを通らなかった変更をインフラに届かせないガードレールとして、GitOpsのパイプラインに組み込む。ansible-lintが承認の材料に現れないタスクを、Moleculeが収束しないPlaybookを止めることを整理し、承認ゲートの入口でチェックの結果を確かめる構成を作る。あわせて、`changed_when: false`のように表示を変えるだけの書き方で、ガードレールをすり抜けられる限界を示す。</description><pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate></item><item><title>「Ansible×TerraformをGitOpsで回す」〜Terraformプロバイダーを問わない構成管理の自動化〜 第9回：Terraform側にもガードレールを置く</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part2/ansible-gitops-part2-09/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part2/ansible-gitops-part2-09/</guid><description>Terraformのチェックを、書かれた内容を見る静的なチェックと、起きる変化を見るplanのチェックの2層に分けて整理する。静的なチェックの効き目がプロバイダーで変わることを実測したうえで、planのJSONから作り直しと削除を読み取り、Ansibleで入れた設定が消える変更を、承認ゲートの入口で止める構成を作る。チェックするのは承認待ちとして保存したplanそのもので、チェックしたplan、承認したplan、適用するplanが一致する。</description><pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate></item><item><title>「Ansible×TerraformをGitOpsで回す」〜Terraformプロバイダーを問わない構成管理の自動化〜 第10回：複数環境（dev/stg/prod）へのデプロイを分岐させる</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part2/ansible-gitops-part2-10/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-gitops/ansible-gitops-part2/ansible-gitops-part2-10/</guid><description>環境をブランチではなく、mainの1本と環境ごとのディレクトリで分け、環境の違いを同じコードに渡す値の違いとして表現する。tfstateとインベントリを環境ごとに分け、ある環境に向けた実行がほかの環境に届かないことを確かめたうえで、dev→stg→prodの昇格の順序と条件を承認ゲートの入口で強制し、環境ごとに最後に適用したコミットを記録する。削除と作り直しは、devでは通し、stgとprodでは人が明示して許可する。</description><pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate></item><item><title>「Ansibleは本当に冪等なのか」〜冪等性が崩れる構造と設計〜 第0回：冪等性とは何か、なぜ重要なのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-00/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-00/</guid><description>Ansibleは冪等だから何回実行しても大丈夫は本当か。冪等性の本来の意味と「状態が収束する」ことの違いを、ShellとAnsibleの設計思想の差から整理する。</description><pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate></item><item><title>「Ansibleは本当に冪等なのか」〜冪等性が崩れる構造と設計〜 第1回：shellモジュールはなぜ&quot;状態&quot;を扱えないのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-01/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-01/</guid><description>shell/commandモジュールがdesired stateを持てない理由を構造から整理する。changed_whenは表示制御であり、冪等性保証ではないことを理解する。</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate></item><item><title>「Ansibleは本当に冪等なのか」〜冪等性が崩れる構造と設計〜 第2回：なぜAnsible moduleは「変更不要」を判断できるのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-02/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-02/</guid><description>file/copy/template などの module が、現在状態と desired state の差分比較によって動作していることを理解する。Ansibleが宣言的管理に見える理由を整理する。</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate></item><item><title>「Ansibleは本当に冪等なのか」〜冪等性が崩れる構造と設計〜 第3回：なぜファイル操作は簡単に非冪等になるのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-03/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-03/</guid><description>改行コード、owner/group、Jinja2レンダリング差分など、「見えない差分」が changed を発生させる構造を理解する。</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate></item><item><title>「Ansibleは本当に冪等なのか」〜冪等性が崩れる構造と設計〜 第4回：なぜ「最新化」は冪等性を壊すのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-04/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-04/</guid><description>yum/apt の state: latest やバージョン未固定が、再実行ごとに状態を変化させる理由を理解する。desired state と「現在の最新版」は別物であることを学ぶ。</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate></item><item><title>「Ansibleは本当に冪等なのか」〜冪等性が崩れる構造と設計〜 第5回：なぜchangedはサービスを再起動させるのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-05/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-05/</guid><description>service/systemd/handler の notify 連鎖を通して、「変更検知」がどのように状態遷移を引き起こすのかを理解する。reload/restart の違いも整理する。</description><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate></item><item><title>「Ansibleは本当に冪等なのか」〜冪等性が崩れる構造と設計〜 第6回：なぜlineinfileは“安全そうに見えて危険”なのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-06/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-06/</guid><description>lineinfile は「状態管理」ではなく「部分パッチ」である。正規表現・重複挿入・文脈依存編集によって冪等性が崩れる構造を理解する。</description><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate></item><item><title>「Ansibleは本当に冪等なのか」〜冪等性が崩れる構造と設計〜 第7回：なぜ同じPlaybookなのに環境ごとに結果が変わるのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-07/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-07/</guid><description>OS・ディストリビューション・systemd・Python・locale 差分によって、module の内部動作が変化することを理解する。</description><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate></item><item><title>「Ansibleは本当に冪等なのか」〜冪等性が崩れる構造と設計〜 第8回：なぜタスクの依存関係は冪等性を壊すのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-08/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-08/</guid><description>handler、register、条件分岐、タスク順序によって「前回実行結果」に依存したPlaybookが生まれる。状態遷移が閉じなくなる理由を整理する。</description><pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate></item><item><title>「Ansibleは本当に冪等なのか」〜冪等性が崩れる構造と設計〜 第9回：冪等性はどうやって検証すべきなのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-09/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-09/</guid><description>check mode の限界、diff mode、molecule、CI、自動テストを通して、「2回目 changed=0」をどう保証するのかを理解する。</description><pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate></item><item><title>「Ansibleは本当に冪等なのか」〜冪等性が崩れる構造と設計〜 第10回 「冪等に設計する」とは何を設計することなのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-10/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-idempotency/ansible-idempotency-10/</guid><description>imperative（手続き）ではなく declarative（状態宣言）としてPlaybookを設計する考え方を整理し、「壊れない構成管理」の原則を完成させる。</description><pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleのPlaybookが壊れる理由はテスト文化にあった」 第0回：なぜPlaybookにテストが必要なのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-molecule/ansible-molecule-00/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-molecule/ansible-molecule-00/</guid><description>「実行して成功した」と「正しい」は別の概念であることを整理し、手動確認の構造的な限界を理解する。テストを持つことの本質が「確認を仕組みに組み込むこと」であることを理解する。</description><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleのPlaybookが壊れる理由はテスト文化にあった」 第1回：Moleculeは何をしているのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-molecule/ansible-molecule-01/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-molecule/ansible-molecule-01/</guid><description>「実行して成功した」と「正しい」は別の概念であることを整理し、手動確認の構造的な限界を理解する。テストを持つことの本質が「確認を仕組みに組み込むこと」であることを理解する。</description><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleのPlaybookが壊れる理由はテスト文化にあった」 第2回：冪等性テストを自動化する</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-molecule/ansible-molecule-02/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-molecule/ansible-molecule-02/</guid><description>冪等性シリーズで作成したPlaybookをMoleculeでテストする構成を実機で確認し、1回目と2回目の実行で何が確認されているかを読み取る。idempotencyフェーズで`changed`が発生した場合の表示を意図的に再現し、テストが失敗するとはどういう状態かを理解する。</description><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleのPlaybookが壊れる理由はテスト文化にあった」 第3回：ansible-lintはなぜそのルールを定めているのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-molecule/ansible-molecule-03/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-molecule/ansible-molecule-03/</guid><description>ansible-lintのルールを設計品質の静的確認として位置づけ、代表的なルールカテゴリが冪等性・ドリフトの問題とどう接続しているかを理解する。MoleculeのverifyフェーズにAnsible-lintを組み込み、テストパイプラインの一部として位置づける。</description><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleのPlaybookが壊れる理由はテスト文化にあった」 第4回：テストが失敗したとき何が分かるのか・CIに組み込む</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-molecule/ansible-molecule-04/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-molecule/ansible-molecule-04/</guid><description>Moleculeのテスト失敗パターンを、設計上の何が問題なのかというフィードバックとして読む視点を理解する。GitHub ActionsなどのCIにMoleculeとansible-lintを組み込み、「変更のたびに確認し続ける」仕組みを整理する。</description><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」第1回：AnsibleとTerraformの連携目的と設計思想の違い</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-01/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-01/</guid><description>AnsibleとTerraformがそれぞれ何を管理するツールかを整理し、役割の境界を意識しない設計がどのようなアンチパターンを生むかを理解する。冪等性シリーズ・ドリフトシリーズで扱った問題が連携環境でどう発現するかを対応づける。</description><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」第2回：Terraform完了直後のプロビジョニング失敗を防ぐSSH待機制御</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-02/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-02/</guid><description>TerraformのAPIレスポンスとSSHD起動完了の間に存在するタイムラグの構造を整理し、実装方式（VM環境・コンテナ環境）によってその顕在化しやすさが異なることを示したうえで、sleepによる固定待機の限界からwait_for_connection・remote-execによる接続確立ベースの待機制御までを解説する。</description><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」第3回：動的インベントリ生成時における出力データのパースエラー</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-03/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-03/</guid><description>TerraformのJSON出力とAnsibleが期待する動的インベントリのJSONスキーマとの構造的な差異を整理し、生のTerraform出力をそのままAnsibleに渡した場合に発生する「静かな失敗」を実機で再現したうえで、Terraform出力をAnsibleが認識できる形式に変換する動的インベントリスクリプトの構成を解説する。</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」第4回：自動生成されたSSH鍵のパーミッション設定エラー</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-04/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-04/</guid><description>Terraformが自動生成した秘密鍵ファイルのパーミッションがSSHクライアントの要件を満たさない場合に接続が拒否される構造と、正しいパーミッション設定の構成を解説します。</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」第5回：仮想環境におけるIPアドレス変動対策</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-05/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-05/</guid><description>Terraformによるリソース再生成でIPアドレスが変動し、Ansibleの接続先とインベントリが不一致になる問題を、Docker環境での実機再現を交えて整理します。</description><pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」第6回：ネットワーク初期化完了前に発生する接続タイムアウト</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-06/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-06/</guid><description>TerraformがネットワークリソースのAPIレスポンスとして作成完了を返す時点と、そのネットワークが実際に通信可能な状態になる時点のラグを整理し、第2回で扱ったSSHD起動タイミング問題との構造的な違いを示したうえで、wait_forモジュールとtime_sleepリソースによる待機制御を解説する。</description><pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」第7回：実行環境とターゲットOS間におけるPythonバージョンの不一致</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-07/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-07/</guid><description>AnsibleがターゲットのPythonを使ってモジュールを実行する構造と、Terraformがプロビジョニングするコンテナ・VMのPythonバージョンが固定されない構造を整理し、実行時エラーの再現を交えて、ansible_python_interpreterによる指定とTerraformプロビジョニングでのバージョン統一という2つの解決パターンを解説する。</description><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」第8回：複数インスタンス同時構築時における並列処理の競合</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-08/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-08/</guid><description>Terraformが複数リソースを並列生成する際のparallelismと、Ansibleが複数ホストを処理する際のforksが、それぞれ独立した並列度の設定であることを整理し、両者がズレることで発生する遅延・競合の構造を確認したうえで、-parallelismオプションとansible.cfgのforks調整という2つの解決パターンを解説する。</description><pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」第9回：OS固有の初期ユーザーと管理者権限（sudo）への昇格エラー</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-09/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-09/</guid><description>Terraformがプロビジョニングするコンテナイメージごとにデフォルトユーザーが異なる構造を整理し、Ansibleのbecomeによる権限昇格が失敗する実行時エラーを再現したうえで、ansible_user・become_userの正しい指定と、Terraformプロビジョニングでのsudoers設定という2つの解決パターンを解説する。</description><pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」第10回：環境構築編まとめ：自動連携のためのコードテンプレート化</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-10/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part1/ansible-terraform-part1-10/</guid><description>第1回〜9回で扱った環境構築・連携時のトラブルと解決策を総括し、TerraformからAnsibleへ一貫して安全に処理を移譲するための実行順序と、統合したコードテンプレートを解説する。</description><pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第11回：手動変更による構成ドリフトの検知と同期手法</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-11/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-11/</guid><description>Terraform管理下のリソースに手動変更が加わったとき、terraform planが検知できる差分とできない差分の構造的な違いを整理する。OS層のドリフト検知をAnsibleが補完する構成と、インフラ層・OS層を二軸で確認・同期する設計方針を理解する。</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第12回：terraform apply実行時における初期化処理とOS設定の上書き問題</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-12/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-12/</guid><description>terraform applyの再実行が初期化スクリプト・コンテナ起動定義の変更を起因としてリソースの破棄・再生成を引き起こし、Ansibleが設定したOS内部状態が消失する構造を整理する。初期化処理とAnsibleの役割分離、lifecycle設定による保護とその限界を理解する。</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第13回：コード修正に伴うリソースの強制再生成（リビルド）リスク</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-13/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-13/</guid><description>TerraformのHCL定義変更が「更新」で済むケースと「破棄・再生成」になるケースを分ける判定構造を整理する。terraform planの出力からforce_new_resourceの発生を事前に読み取り、Ansibleが投入した内部データの消失リスクに備える設計方針を理解する。</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第14回：複数回実行時におけるAnsible Playbookの冪等性の確保</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-14/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-14/</guid><description>terraform applyのlocal-exec経由でAnsibleが複数回実行される構成において、冪等性が確保されていないPlaybookがterraform apply自体の失敗を引き起こす構造を整理する。専用モジュールへの置き換え、実行条件の明示、--check --diffによる事前確認という設計パターンを理解する。</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第15回：チーム運用における状態管理ファイル（tfstate）の整合性維持</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-15/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-15/</guid><description>Terraformを管理するエンジニアとAnsibleを実行するオペレーターが分業する体制において、tfstateへの同時操作が競合を引き起こす構造を整理する。state lockingによる技術的な防止策と、tfstate出力値の直接参照が生む結合度の高さ、中間ファイルによる責務分離という役割分担の設計パターンを理解する。</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第16回：パッケージアップデートに伴う環境の非互換性への対応</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-16/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-16/</guid><description>Terraformが固定するのは起動元イメージであり、起動後のOS内部でapt updateにより進行するパッケージバージョンの変化は管理範囲外にあるという構造を整理する。イメージ固定とパッケージバージョン固定を組み合わせた制御設計と、検証環境を経由する運用フローを理解する。</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第17回：リソース再生成時におけるIPアドレス変動と接続情報の更新遅延</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-17/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-17/</guid><description>リソース再生成によってIPアドレスが変動した際、Ansibleのインベントリや各種設定ファイル（DNS・hosts・他ノードの接続設定等）の書き換えが追いつかず、古いIPアドレスを参照したまま処理が失敗する構造を整理する。静的インベントリと動的インベントリの挙動差を実機で確認し、IPアドレス変動を関連設定に自動連動させる設計パターンを理解する。</description><pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第18回：TerraformとAnsible Vaultにおける機密情報の役割分担</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-18/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-18/</guid><description>データベースのパスワードやAPIキーなどの機密情報を、TerraformとAnsible Vaultのどちらで暗号化し、どのように管理すべきかを整理する。Terraformの`sensitive`属性が持つ限界と、機密情報の性質による責務分担の考え方、Vaultの誤用パターンとその回避策を実機で確認する。</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第19回：OSのメジャーバージョンアップ時におけるPlaybookの互換性検証</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-19/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-19/</guid><description>Terraform側でベースイメージ（例：Ubuntu 22.04→24.04）を変更した際、Ansibleの古い独自モジュールやシェルコマンドが機能しなくなる構造を整理する。Pythonバージョンの変化、コマンド・パッケージの非互換、モジュール自体の非互換を実機で確認し、本番切り替え前の段階的な検証フローを理解する。</description><pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第20回：運用編まとめ：ミュータブル運用とイミュータブル運用の折衷案</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-20/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part2/ansible-terraform-part2-20/</guid><description>第11回〜第19回で扱った運用、ライフサイクル編の個別事象を、ミュータブル運用とイミュータブル運用という軸で整理し直す。両運用思想の利点・欠点、TerraformとAnsibleの役割分担の重心の変化を踏まえ、リソースの性質による使い分けという折衷案を示す。</description><pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第21回：統合実行時におけるネストされたエラーログの解析手法</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-21/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-21/</guid><description>Terraformのlocal-exec経由で実行されたAnsibleのエラーが、terraform applyの単一のエラーメッセージに集約される構造を整理する。ANSIBLE_LOG_PATHによるログの分離取得と、両ツールのログを時系列で突き合わせて原因を特定する手法を扱う。</description><pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第22回：マルチネットワーク環境におけるインターフェース競合</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-22/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-22/</guid><description>Terraformで複数のDockerネットワークをコンテナにアタッチした際、HCL上の記述順序とコンテナ内部で実際に割り当てられるインターフェース名の対応関係が一致しない構造を整理する。この順序のずれがAnsibleの接続先IP自動検出（ansible_default_ipv4等）に波及し、接続エラーの原因となる仕組みと対処を扱う。</description><pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第23回：大容量ファイル転送・重いタスク実行時におけるSSHタイムアウト</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-23/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-23/</guid><description>大容量ファイル転送や重いタスク実行時にTerraform側のプロビジョナータイムアウトへ抵触する構造を、接続確立時と転送中無応答というSSHタイムアウトの発生層、TCP輻輳制御・MTU等のネットワーク層の要因に分けて整理する。タイムアウト値の調整・処理分割による対処もあわせて扱う。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第24回：並列実行時における実行ホストのシステムリソース枯渇対策</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-24/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-24/</guid><description>Terraformの並列リソース生成とAnsibleのforks並列実行が同じコントロールホスト上で重なった場合に、CPU、メモリ、ファイルディスクリプタ等が構造的に圧迫されうる仕組みを整理する。症状の切り分け方法、並列度の制御による対処もあわせて扱う。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第25回：構文チェックツール（HCL構文、ansible-lint）の競合緩和</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-25/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-25/</guid><description>Terraformのtemplatefile関数でAnsibleのインベントリ・変数ファイルを動的生成する構成において、HCL側の記法とansible-lintのルールが生成物を挟んで間接的に競合する構造を整理する。CI/CDパイプラインでの競合の現れ方、緩和のための設計パターンもあわせて扱う。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第26回：管理者権限（sudo）実行時におけるパスワード入力のプロンプト停止</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-26/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-26/</guid><description>Terraformのlocal-exec経由でAnsibleのbecomeを実行する構成において、パスワード入力を要求するオプションを指定した場合に、非対話実行環境ではプロンプトへの応答が成立せず処理が無応答のまま停止する条件を整理する。実機検証を交えて、停止が発生する条件と回避策をあわせて扱う。</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第27回：再起動、再生成に伴うプロビジョニング断絶</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-27/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-27/</guid><description>VM環境のrebootモジュールに相当する操作が、再起動、再生成のタイミングでAnsibleとTerraformの連携にどのような接続断絶をもたらすかを整理する。Terraformのlocal-execがこの断絶を受動的にしか観測できない構造と、その対処設計を概念レベルで解説する。</description><pubDate>Sat, 29 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第28回：異種OS（Windowsターゲット）混在環境における接続プロトコルの制約</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-28/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-28/</guid><description>AnsibleがWindowsターゲットに接続する際はSSHではなくWinRMプロトコルを使用するため、認証、暗号化方式の前提がLinuxターゲットとは根本的に異なる構造を整理する。証明書エラー、暗号化プロトコル不一致によって通信が拒否される原因とその対処を、概念、アーキテクチャ解説として扱う。</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第29回：プロキシ環境等における外部コレクション（Ansible Galaxy）の取得失敗</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-29/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-29/</guid><description>Terraformのlocal-exec経由でAnsible Playbookを実行する構成において、Playbookが依存する外部Collection（Ansible Galaxy配布）の取得がプロキシ環境、制限ネットワークで失敗し、local-exec全体が異常終了する構造を整理する。事前取得によるオフライン化、内部ミラーの利用という対処の選択肢もあわせて扱う。</description><pubDate>Sat, 29 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第30回：デバッグフラグの組み合わせによるログ解析の高度化</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-30/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part3/ansible-terraform-part3-30/</guid><description>Terraformの`TF_LOG`とAnsibleの`-vvvv`という、それぞれ独立した詳細度制御の仕組みを整理する。両者を組み合わせることで、第21回から第29回まで扱ってきた個別の問題の原因特定を、体系的な手順として横断的に扱えることを示す。</description><pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第31回：状態出力を介した疎結合なパイプライン設計</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-31/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-31/</guid><description>Terraformのlocal-exec経由でAnsibleを直接実行する密結合構成を見直し、Terraformの責務を状態（tfstate・output）の出力に限定する設計を扱う。Ansible側がその出力を独立したタイミングで読み込んで動作する疎結合なパイプライン設計への移行を整理する。</description><pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第32回：GitHub Actionsを用いたプロビジョニングコードの自動テスト環境構築</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-32/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-32/</guid><description>GitHub-hostedランナーに標準搭載されたDocker Engineを用いて、Terraformによるコンテナ起動からAnsible適用までを一連のジョブとして自動実行するCI/CD環境を扱う。ローカル環境とCI環境の実行内容の一致性、CI特有のコンテナ運用の特徴を整理する。</description><pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第33回：`triggers`を用いたAnsible再実行の最適化設計</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-33/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-33/</guid><description>`null_resource`や`terraform_data`の`triggers`／`triggers_replace`を用い、Playbookの内容に変更がない場合はAnsible実行そのものをスキップする設計を扱う。Terraformの状態管理の仕組みによる、プロビジョニング処理の最適化を整理する。</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第34回：Testinfraによる状態検証を組み込んだCI/CDパイプライン</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-34/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-34/</guid><description>Ansible適用後の状態をTestinfra（Python）で検証し、TerraformとAnsibleそれぞれの成功報告に依存しないパイプライン全体の最終確認を組み込む設計を扱う。docker・sshバックエンドによる、ローカル環境とCI環境の使い分けも整理する。</description><pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第35回：共通パーツのモジュール化（Terraformモジュール／Ansibleロール）</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-35/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-35/</guid><description>Terraformのモジュール設計とAnsibleのロール（Role/Collection）の粒度を揃え、再利用性を高める設計パターンを扱う。共通化によってコードの重複が解消される一方で生じる、変更の影響範囲と冪等性の重要性についても整理する。</description><pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第36回：プラグインおよびパッケージのキャッシュによる開発効率の向上</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-36/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-36/</guid><description>Terraformのプラグインキャッシュ機能とAnsible実行時のaptパッケージキャッシュを扱い、検証を繰り返す開発サイクルにおける待ち時間の削減を整理する。</description><pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第37回：定期実行による構成ドリフトの自動検知と収束パイプライン</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-37/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-37/</guid><description>Ansible Playbookの--checkモードを定期実行し、terraform planでは検知できないコンテナ内部の構成ドリフトを検知、自動収束させるパイプライン設計を整理する。</description><pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第38回：インフラコード（HCL／Playbook）からの仕様書、構成図の自動生成</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-38/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-38/</guid><description>terraform-docsを用いてTerraformコードからMarkdown形式の仕様書を自動生成し、Ansible Role側のドキュメント化とあわせて、コードとドキュメントの乖離という運用課題への対処を整理する。</description><pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第39回：既存インフラ運用知識とInfrastructure as Code（IaC）のシナジー</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-39/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-39/</guid><description>このシリーズで扱ってきた問題の多くが、OS・ネットワーク・コンテナ運用の伝統的な知識と、コードによる状態管理というIaC特有の知識の両方を必要としていたことを振り返り、両者が組み合わさることの意味を整理する。</description><pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第40回：改善、CI/CD編まとめ：プロビジョニング自動化の成熟度モデル</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-40/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part4/ansible-terraform-part4-40/</guid><description>第31回〜第39回で扱ってきた個々の改善を、手動実行から状態連携、CI/CD化、自動収束に至る成熟度モデル（Level 1〜4）として整理し直す。レベルが上がっても解消されない構造上のギャップと、導入コストとのトレードオフを踏まえて第4部を総括する。</description><pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第41回：なぜTerraformはAnsibleが投じた設定を知らないのか</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-41/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-41/</guid><description>TerraformのState管理メカニズムを整理し、tfstateが記録する範囲と、Ansibleがコンテナ内部に投じる設定変更がその管理範囲の外側にある構造を解剖する。TerraformとAnsibleそれぞれの管理範囲が独立しているという「認識の不可視性」を、第5部全体を貫く軸として提示する。</description><pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第42回：`create_before_destroy`や`replace_triggered_by`による強制再生成</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-42/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-42/</guid><description>`lifecycle`ブロックの`create_before_destroy`と`replace_triggered_by`という2つの再生成トリガーを整理し、リソースの強制再生成によってAnsibleが投じたコンテナ内部の設定が消失する現象を実機で再現する。この消失が「認識の不可視性」の必然的な帰結であることを示す。</description><pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第43回：`prevent_destroy`設定時におけるAnsibleプロビジョニングの詰まり</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-43/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-43/</guid><description>誤破壊防止のための`prevent_destroy`設定が、リソースの破棄を伴う変更と衝突した際に`terraform apply`がエラーで停止し、デプロイパイプラインが詰まる構造を整理する。第42回の設定消失を防ぐ目的で`prevent_destroy`を設定すると、別の障害に置き換わるだけであることを実機で確認する。</description><pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第44回：リソース再生成に伴うAnsible生成データの全喪失（データ消失障害）</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-44/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-44/</guid><description>Terraformによるリソースの破棄、再生成が、Ansibleが投じた静的な設定だけでなく、稼働中に生成され続ける動的なデータをも消し去る構造を整理する。コンテナのファイルシステムのライフサイクルという観点から、設定の消失とデータの消失の被害の質の違いを実機で確認する。</description><pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第45回：ネットワークや依存リソースの変更に引きずられる連鎖的再生成</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-45/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-45/</guid><description>ネットワーク等の依存リソースがForceNew属性の変更によって削除、再作成される際、参照構造を通じて接続先のコンテナ群にまで変更が波及する構造を整理する。単一リソースの変更が意図しない範囲まで連鎖する現象を実機で確認する。</description><pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第46回：プロビジョニング途中の接続切断とState不整合（ハーフデプロイ状態）</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-46/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-46/</guid><description>local-execプロビジョナーによるAnsible実行が異常終了した際、Terraformがリソースをtaintedとしてマークし、リソースの作成完了とプロビジョニング未完了が併存するハーフデプロイ状態が生じる構造を整理する。接続切断やプロセス停止の中断パターンを類型化し、taint状態の実態を実機で確認する。</description><pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第47回：ステートフルなデータ（Volume/DB）を保持しながらの安全な再構築</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-47/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-47/</guid><description>内部データをDocker Volumeに分離し、コンテナが再生成されてもAnsibleの投入データを維持する設計を整理する。第42回、第44回、第45回で確認してきたリソース再生成に伴うデータ消失への対策として、Volumeの独立したライフサイクルを実機で確認する。</description><pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第48回：イミュータブルインフラストラクチャにおけるAnsibleの限定的役割</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-48/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-48/</guid><description>実行時にAnsibleでコンテナ内部を設定する運用を見直し、ビルド時にAnsibleを組み込んでコンテナイメージへ設定を焼き込む運用への転換を整理する。第41回で示した「認識の不可視性」の前提がこの転換によってどう変わるか、第42回・第44回・第47回で確認してきた問題群がどこまで解消されるかを実機で確認する。</description><pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」 第49回：CI/CD環境において再構築事故を物理的に防ぐパイプラインガード</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-49/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-49/</guid><description>terraform planの結果をJSON形式で機械的に解析し、Destroy &amp; Createに相当する危険な変更を検出してapplyを自動的にブロックする、CI/CDパイプライン上のガードレール設計を扱う。prevent_destroyとは異なり、コードの外側に置かれた着脱可能な一時的チェック工程としての性質を整理する。</description><pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate></item><item><title>「AnsibleとTerraformの連携が壊れる理由はライフサイクルにあった」第50回：連載総括：Ansible×Terraformを共存させる「ツール境界線」の設計原則</title><link>https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-50/</link><guid isPermaLink="true">https://juehara-crypto.github.io/blog/infra/ansible/ansible-terraform/ansible-terraform-part5/ansible-terraform-part5-50/</guid><description>第41回で示した「認識の不可視性」という構造が、第42回から第49回でどう異なる形をとって現れたかを整理し直す。不可視性が破壊に転じる局面、そして第47〜49回の対処が持つそれぞれの限界を踏まえ、第5部を総括する。</description><pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate></item></channel></rss>