クラウドレスキューアップデート:自動ネットワーク構成

1つの段落のニュース:レスキューinitrd(カーネルとinitrdからの特別なキット)は、クラウドサーバーに割り当てられたipv4 / ipv6アドレス用に自動的に構成され、ブート後にsshサーバーを自動的に開始します。


どのように機能しますか?


通常、仮想マシンのロードは次のようになります。仮想マシンのブートディスクから(ブートパーティションから)、grub.cfg / grub.lstが読み取られ、そこからカーネルとinitrdが選択されます。 ドメインビルダー(仮想マシンの起動時にドメインを作成し、そこに/ initrdカーネルを配置し、設定を含むスタートページを形成し、メモリを追加する特別なアプリケーション)このカーネルは、ドメインをロードして起動します。

さらに、カーネルは通常のサーバーのようにすでにロードされています-initrd initスクリプトが起動され、ルートファイルシステムを準備し、pivot_rootを作成し(ルートディレクトリを切り替え)、実際のinitが起動され、inittabを読み取り、初期化システムsystem-vまたはupstart、systemdを起動します、本当に好きな人。

問題が発生した場合:ルートファイルシステムが利用できない、ハッキングの疑い、問題の調査、それから代替カーネルをロードする必要があるかもしれません。

この場合、カーネルはゲスト仮想マシンのディスクから読み取られるのではなく、既製のカーネルのカタログから取得されます。 そこから、initrdが取得されます。 ゲストマシンはそのまま起動します。

合計で、カーネルとinitrdのいくつかのセットがあります-それらのほとんどは、通常のシステムを起動できますが、オペレーティングシステムの「外部」のままで、何か有用なことを行ういくつかの特定のinitrdがあります。

これは:

initrdをレスキューできるのは何ですか?


ローンチ直後に彼について詳しく書きました: habrahabr.ru/company/selectel/blog/122667
要するに:


何が変わった?


これで、initrd自体がネットワーク設定を決定します。 ここには魔法はありません。カーネル引数を設定すると、仮想マシンの現在の設定が追加され、initrdのスクリプトがこれらの設定を受け取り、それに応じてネットワークを構成します。

同時に、sshサーバーが自動的に起動するようになりました。

理論的な解決策がわからない問題が1つあります。 これはsshサーバーの秘密鍵の問題です。 (同じIPアドレスに対して)変更されると、ssh-clientは「変更されたサーバーキー」に関する不快な警告を出します(そして、ほとんどのssh-clientでは、known_hostsでキーが変更/削除されるまで接続できません)。

いくつかのオプションがあります:


言い換えると、美しい解決策はないため、唯一可能な解決策は、既知のキーから古いキーを削除し、接続し、作業を完了した後、保存されたキーを再度削除することです。

...または、コンソールを使用します。

suploadを使用する


レスキューinitrdには、任意の高速ストレージにデータをアップロードできるスクリプトが含まれています。 たとえば、クラウドストレージへ。

次のようになります。

supload.sh -u -k file.tar.gz


ストレージプロジェクトとサーバープロジェクトは互いに独立しているため、ユーザー名とパスワードは手動で追加する必要があります。 クラウドストレージの「アクセス設定」ページで見つけることができます。

当面の見通し


ユーザーrootの公開鍵をrescue-initrdにコピーします。 次の1-2アップデートで実装されます。

Source: https://habr.com/ru/post/J179933/


All Articles