小ネタです。 Kubernetes開発用の作業用サーバーを構築する時に書いたので、何となく書いてみます。 EC2ならユーザーデータとかでやればええやんとかいう正論は受け付けません
一応理由を説明すると、
- 起動時に毎回インストール作業が実行されるのがあまりよろしくない
- インストールされているか否かをチェックするスクリプトを書き始めたら、そもそもユーザーデーターの責務では無い気がした(ユーザーデーターに記述されている内容は、起動時に毎回実行されるべきなはず)
- 様々な資産があり、慣れているAnsibleで書いたほうが良いのでは?
という理由によるものです
インストール内容
作業サーバー(ツール群をインストールする対象のサーバー)のOSはAmazonLinux2を利用しています。今回は以下のツールをインストールしました
最近のツールはバイナリを放り込めば完成するパターンのものが多いので、インストールが楽になりました。 これらツールも例に漏れずバイナリ(もしくは単体のスクリプト)を放り込めばインストールが完了します
できたもの
早速結果を貼っちゃいます
kubectl
kubectx
kubens
eksctl
get_url
と unarchive
が素晴らしいので特筆すべきことは無いのですが、全てバージョン等を指定せず、Ansible実行時の最新を持ってくるように書いています。冪等性をあえて乱すような書き方をしていますが、Kubernetes界隈は開発が活発なので、常に新しいものを使うのが正義であると考え、この形にしています
Kubernetesの作業用サーバーを用意するといった考え方がもう古いような気もしますが、忘備録的にまとめてみました