ssh 経由で実行するサーバー初期構築用の Ansible のレシピがあって
これまでローカルPCからssh経由で対象サーバーにレシピを実行していたんですが
このレシピをなるべく改変せずに ssh のかわりに SSM を使って実行する方法はあるでしょうか


セキュリティ要件のため管理はすべてSSM経由で行うことになり
ローカルPCで ansible-playbook を実行するだけでは動きません

方法としては

  1. SSM でEC2に入ってからレシピを git clone でもってきて
    ローカルホストに対して ansible を実行する

初期環境なので python, git, ansible が入っていないので手動でインストールする必要があり再現性が担保できない

  1. aws cli には Run Command
    (https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/walkthrough-cli.html)
    というのがあってSSM 経由でコマンドを実行できるみたいなのですが
    ansible で ssh のかわりにこの Run Command を使用するというのはできないでしょうか

  2. python, git, ansible をインストールしてローカルに Ansible を実行する
    という1連のスクリプトを書いてそれを Run Command で呼べば可能ではあるのですが
    対象サーバーに ssh さえあれば何もインストールする必要がない Ansible のメリットが損なわれます

コストがかかるようであれば一時的に ssh をあけてもらって
レシピをいままでどおり実行した後閉じるということになるんですが
それも上長へ申請が必要なので、できるのであればSSMでansibleを実行する方法を知りたいです