私はこれを自動化する方法を探しています。私は複数のLinuxサーバーを持っていて、SSHを介してサーバーにログインし、タスクを手動で実行することなく、サーバー上でいくつかのスクリプトを実行できるようにしたいと思います。
サーバーで事前定義された特定のタスクを実行できる統合コマンドセンターが必要です。
これらのニーズを満たすために、ansibleなどのいくつかのツールがあることを知っています。
しかし、別の要件があります。事前定義されたタスクを実行できるようにコマンドセンターを制限したいと思います。完全にそれはすべてです。したがって、コマンドセンターが完全に破損した場合、攻撃者は事前定義された操作のみを実行でき、コマンドセンターへのSSHアクセスを提供するソリューションはこの要件に反します。
私はいくつかのツールを検索して試しましたが、どちらも私のニーズには適していませんでした。
答え1
あなたが見つけたように、他の人が構築したソリューションは、雇用主/組織が課した要件/制限に基づいてユースケースを提供するために構築されたネットワークに存在する問題を解決しません。
つまり、インターネットからソリューションをコピーしてアーキテクチャに貼り付け、完全に機能させることはできません。要件/ニーズに合わせてカスタマイズする必要があります。
私たち全員がこれを学ぶ過程を経ています。あなたもそれを学んでいます。クラブへようこそ。
あなたの場合、サーバーで変更/作業を実行するソリューションの一部を処理する複数の構成管理スイートがあります。 Ansible、Chef、Puppet、Saltstackなどは通常、ルートアクセス(直接またはsudo経由)を介してこの部分を実行できます。ただし、各サービスには、どのユーザーが電話をかけることができるかについていくつかの規制があるかもしれませんが、正確に望むことはありません。
ただし、この階層規制(制御)は、構成管理システムと連携する他のソフトウェアスイートで処理できます。たとえば、JenkinsなどのCI / CDプラットフォームを使用してAnsible Playbookを呼び出すことができます。 Ansibleは特権アクセスを使用して必要な自動化タスクを完了しますが、JenkinsワーカーシステムのみがAnsible Playbookを呼び出す権限を持つアーキテクチャを想像してください。 Jenkins設定は、プレイブックを実行できるユーザーを制御します。タスクを完了し、誰がどのタスクを実行できるかを制御する自動化されたタスクを取得できます。これコンビネーションAnsibleとJenkinsの組み合わせは、あらゆるセキュリティとビジネス要件を満たすことができます。
これはインフラストラクチャ/運用ワークセットに近いため、ソフトウェア開発者がカスタムアプリケーションのデプロイに使用するインスタンスとは別のJenkinsインスタンスを作成できます。
AnsibleとJenkinsでなければなりませんか?いいえ。広く使われており、一緒に使うことを想像できるので提案します。他のCI / CDファミリまたは他の構成管理ファミリに慣れている場合は、それを使用できます。私が提案したいアイデアは、2つ以上のソフトウェアスイートをビルディングブロックにまとめて、すべてのニーズに合った完璧なソリューションを作成することです。