Linuxボックスをどのようにリモート管理しますか?[閉まっている]


13

注:今朝、EC2ボックスに関してこの質問をしましたが、インスタンスを開始および停止するツールへのリンクのみが返されたため、言い換えます...

私のプロジェクトの1つで夜間処理ジョブを実行するLinuxボックスがいくつかあります。ときどき、コードの変更、設定、ファイルの移動などを行う必要があります。

これらの操作のための私のツールセットは非常にまばらであり(SSHをボックスに入れ、VIMでファイルを編集し、必要なリモートファイルをWGETします)、もっと良い方法があると思います。私の立場の他の人々が何をしているのか聞きたいです。

ボックスにアクセスするために何らかの形のウィンドウシステムとリモートデスクトップを使用していますか、それともすべてコマンドラインですか?リモートWindowsボックスを管理するのは簡単です。なぜなら、単純にリモートデスクトップでネットワーク経由でファイルを転送できます。Linuxの世界でこれに相当するものはありますか?

マシン上で直接設定ファイルの変更/スクリプトの調整を行っていますか?または、これらのファイルをリモートで編集するためにローカルボックスに何か設定がありますか?または、単にリモートで編集し、保存するたびに転送しますか?

サーバーとローカル環境の間でファイルをどのようにやり取りしていますか?FTP?VPN経由でマッピングされたドライブのようなものですか?

これらのボックスを管理するためのベストプラクティスを実際に取得する必要があります。痛みを取り除くための提案は大歓迎です!


FTPを使用せず、代わりにSFTPを使用してください。
ブラッドギルバート

回答:


19

これらの操作のための私のツールセットは非常にまばらであり(SSHをボックスに入れ、VIMでファイルを編集し、必要なリモートファイルをWGETします)、もっと良い方法があると思います。私の立場の他の人々が何をしているのか聞きたいです。

スパース?一体どういう意味ですか?失礼ですが、ssh、vim、wgetを痛みを伴うものとして却下することはほとんどdis辱的です。あなたの質問から、私はあなたが主にあなたの昼間の仕事のためのプログラマーであると推測するので、私はちょっと質問を理解します。しかし、正直なところ、あなたが言及した3つのツールのいずれにも慣れていないLinux管理者を雇うつもりはありません。

ボックスにアクセスするために何らかの形のウィンドウシステムとリモートデスクトップを使用していますか、それともすべてコマンドラインですか?リモートWindowsボックスを管理するのは簡単です。なぜなら、単純にリモートデスクトップでネットワーク経由でファイルを転送できます。Linuxの世界でこれに相当するものはありますか?

管理者タスクには、X環境を使用したことはありません。必要ありません。システムリソースを占有するだけであり、ほとんどの場合、それらは助けではなく障害となります。ほとんどのGUI設定ツール(実際にはすべて)は、vimで設定ファイルに設定できる設定オプションのサブセットのみを提供します。

Linuxボックスの管理は、Windowsボックスの管理と同じくらい簡単です。まともなスキルセットを獲得するには少し時間がかかります。

そして、ネットワークファイル転送と同等の?たくさん。scp、sftp、ftp、nfs、cifs / smb(Windowsファイル共有プロトコル)、そしていくつか。

マシン上で直接設定ファイルの変更/スクリプトの調整を行っていますか?または、これらのファイルをリモートで編集するためにローカルボックスに何か設定がありますか?または、単にリモートで編集し、保存するたびに転送しますか?

私が何をしているかに依存します。マシンの設定ファイルで直接行うことのほとんど(開発およびテストボックス用)を行い、そのファイルをSatelliteサーバーの設定チャンネルにプッシュします。その後、ファイルをすべてのサーバーに直接展開します(運用ボックス用) )。本当に、vimは宝物です。つまり、適切に使用する方法を見つけたときです。

サーバーとローカル環境の間でファイルをどのようにやり取りしていますか?FTP?VPN経由でマッピングされたドライブのようなものですか?

ずっとscp、そしておそらくいくつかのsftp、そしてあなたもそうすることをお勧めします。FTPを使用して、機密ファイル(構成ファイルなど)をパブリックネットワーク上で移動しないでください。必要なのはサーバー上だけなので、マップされたネットワークは使用しません。ここで構成ファイルではなくcファイルを意味する場合、通常はsvnやgitのようなものを使用してから、ボックスに変更をプッシュします。

これらのボックスを管理するためのベストプラクティスを実際に取得する必要があります。痛みを取り除くための提案は大歓迎です!

すでに使用しています:ssh、scp、wget、vim。それらは痛みではありません。歯が生える痛みがあるかもしれませんが、それらがどれほど強力であるかを理解します。しかし、Windowsの類推を取り戻すために、Windowsボックスを使用しなければならないとき、私は真剣に妨げられています。あなたにとっては逆です。それはあなたが慣れているものです。それで、それをしばらくしてください、そして、それはあなたに来ます。


12

あなたはすでにssh、vim、wgetについて言及しましたが、これらは不可欠で完璧です。生活を楽にすることができるいくつかの追加ツール:

1. GNU Screen / byobu

「GNU Screenは、ユーザーが単一のターミナルウィンドウまたはリモートターミナルセッション内の複数の個別のターミナルセッションにアクセスできる無料のターミナルマルチプレクサです。コマンドラインから複数のプログラムを処理し、起動したシェルからプログラムを分離するのに役立ちますプログラム。" (ウィキペディアのGNU_Screenページから)

主な利点は、1つまたは複数の仮想端末を使用できることです。仮想端末は、戻ってきたときとまったく同じ状態になります(つまり、sshを介して再ログインします)。これは、何らかの理由で接続が切断された場合にも役立ちます。

画面は、ボックスに接続するために使用するソフトウェア(サーバー上にある)から独立して動作するため、パテまたは他のほとんどの端末ソフトウェアとうまく組み合わされます。

この記事では、それを使ってできることをいくつか示します。http//www.pastacode.de/extending-gnu-screen-adding-a-taskbar/en/

適切な代替手段はbyobuで、これは一部のディストリビューションで適切に事前構成されています:http ://byobu.co/


2.真夜中の司令官

ファイルやディレクトリを表示および操作するためのコンソールベースのグラフィカルなブラウジングツール。

安全なリモート転送もできます。組み込みのFISHおよびFTPクライアントがあります。

つまり、コマンドラインコンソールに2つのテキストウィンドウが並んでいて、1つはリモートボックスを表示し、もう1つは接続先(ローカルシステムでも可)を表示します。次に、両方のファイルシステムを並べてナビゲートし、個々のファイルまたはファイルツリーをマークまたは調査し、それらを場所間でコピーまたは移動します。FISHは安全ですが、FTPは安全ではありません。初心者にとって非常に強力でシンプルです。


3. rsync

高速で安全で信頼性の高いファイル転送と異なる場所間の同期のため


4. VCS

bazaar、mercurial、gitなどの分散バージョン管理システムを使用してコードを更新します。GithubまたはBitbucketは商用コードホスティングを提供しますが、必須ではなく、ご自身のマシンで効率的に使用することもできます。

ジョセフ・カーン:リモート構成の編成にgitを正確に使用する方法を詳しく説明できますか?


5.ターミナルクライアント

Unixライクなシステムでは既にボードに搭載されていますが、WindowsではPutty、Tera Term、Mind Term、またはPandoraを使用できます。または、cygwinのインストールとsshをcygwinのターミナルウィンドウからリモートボックスに作成します(これにはより多くの利点がありますが、これは何を好むかという質問です)。


6.トンネリングとポート転送

特定のポートをローカルマシンに安全に転送すると役立つ場合があります。たとえば、mysqlポートTCP 3306またはpostgres TCP 5432を転送し、データベース管理ツールをローカルにインストールできます。

Windwosマシンからパテ(またはリトルブラザープリンクに基づいたコマンドライン)でトンネルを構築できます。cygwinとMindtermでもポート転送を実行できます。UNIXのようなマシンでローカルにいる場合は、ssh odr plinkを使用してこのようなトンネリングを作成できます。

さまざまなポートに対してより安定した永続的なトンネリングを作成するには、OpenVPNをお勧めします。ポイントからポイントへの「事前共有キー」トンネリング方法は、インストールするのがそれほど難しくありません。


7.ローカルのUnixライクなシステムを持っている

ローカルマシンがすでにMacである場合、これを既に持っているので、ローカルシェルを開くことができます。ワークステーションがWindowsベースの場合、同じローカルネットワーク内にあるローカルUNIXのようなサーバーを作成すると便利です。これは、同じルーターまたはスイッチに接続された別の部屋の別のマシンにすることができます。または、1台のマシンだけが必要な場合は、無料のvmwareサーバーをインストールして、仮想マシン(できればリモートマシンと同じオペレーティングシステム)を作成できます。その上にsambaサーバーをインストールすると、デスクトップからsamba共有を「ネット使用」できます。

ローカルサーバーにsshサーバーがあり、ルーターのポート22を開いている場合は、外にいるときにローカルシステムにsshできます。

リモートマシンへのトンネルを構築するか、rsyncを使用してファイルとファイルツリー全体を転送および同期できます。テスト、VSC、ローカル開発、ローカルWebサーバー、トレーニング目的で使用できます。

リモートマシンからバックアップを取得できます。バックアップを自動的に行うローカルcronジョブを作成できます(ローカルに定期的に保存するデータベースなど)


8. XリモートGUI

Linuxのようなシステムで物理的に作業している場合、ローカルサーバーでGUIを描画するGUIアプリケーションをLinuxサーバーで実行することもできます。これは、グラフィカルなファイル比較ツールまたは必要なほぼすべてのものです。

あまり一般的ではありませんが、Linuxボックスの管理にGUIソフトウェアを使用する必要がないmsotの場合は、可能であれば便利な場合があります。

リモートマシンで、/ etc / ssh / sshd_configに次の行が存在することを確認します。

X11Forwarding Yes

でsshサーバーを再起動します

/etc/init.d/sshd restart

次に、次回ログインするとき

ssh -X me@remote-box

Xトンネルがあり、テスト目的でリモートサーバーにxclockをインストールして、xclock先ほど述べたsshセッションでiを実行してみます。テスト用のシンプルなxクロックがLinux GUIに表示されます。

ローカルX環境をインストールする場合、これはMacでも可能です。


9.多数の同様のボックスまたはタスクがある場合:システム構成ツールを使用します

サーバーファームがある場合、または多くの冗長または同等または類似のマシンで大規模なクラウド展開を行う場合、これを使用できます。

ほとんどのボックスが個別であるか、異なるオペレーティングシステムまたは異なるバージョンが実行されている場合、おそらく意味がありません。

いくつかのツールがあります。


10.アプリケーションコンテナーをデプロイする docker

これはさらに一歩進んでいます。Dockerは、ソフトウェアコンテナー内のアプリケーションの展開を自動化するオープンソースプロジェクトです:https : //www.docker.io


11.自動展開管理でGoogle Compute Engineを使用する

https://cloud.google.com/products/compute-engine/

Googleは非常にエキサイティングな可能性を持つLinux VMを提供しています。RESTful API、コマンドラインインターフェイス、Webベースのコンソールなどのツールを使用して、仮想マシンの大規模なクラスターをすばやく展開できます。RightScaleやScalrなどのツールを使用して、展開自動的に管理することもできます


これは受け入れられた答えよりもはるかに有用な答えだと思います。MCは私の好みのツールです。特に、cd /#sh:<user>@<server>:<directory>閲覧やファイル転送のためにリモートマシンにログインできるほか、Ctrl-oを使用すると一時的にコンソールに切り替わります。別のCtrl-oを押すと、キーを1回押すだけでMCに戻ります。
グスタフバートラム

Linuxサーバーを管理するときにLinuxデスクトップを使用することの利便性は、誇張することはできません。私は真夜中の司令官...のために少しの使用を参照してくださいけれども
マイケル・ハンプトン

@Michael mcのFISHクライアントは、私がよく使うものです。
MIT

4

WindowsボックスからSSH経由でファイル管理を行うための素敵なGUIを探しているなら、WinSCPを見てくださいhttp ://winscp.net

私はEC2インスタンスを管理していませんが、一般的に、ロールを実行するマシンが複数ある場合は、ボックスごとに変更を行う代わりに、同様のすべてのボックスで作業を実行するスクリプトを作成してみます。

Puppet(http://reductivelabs.com/products/puppet/)の使用を開始したいと思います。これにより、システム管理が構成管理の演習になります。私はまだそれを詳細に見るための予備のサイクルを持っていませんでしたが、私は非常に良いことを聞きました。


4

Chefのようなシステム構成管理ツールを検討する必要があります。

SSHセッションを介して手動でシステムを管理することはもうほとんどありません。EC2のWebサイトなど、Webアプリケーションとプロジェクトのすべてのコードを、それらを実行するシステムからアクセスできるソースコードリポジトリに保管します。クラウドで作業する場合、自動化されたインフラストラクチャが不可欠です。

基本的なワークフローは次のようになります。まず、アプリケーションコードと構成データについて:

  • GitHubまたは他のバージョン管理リポジトリからコードを複製/チェックアウトします。
  • ローカルワークステーション/ラップトップ上のお気に入りのエディターでコードを編集します。
  • 変更をコミットし、中央リポジトリにプッシュします。

構成のために、追加します:

  • Chefがそれらを提供できる場所に構成ファイルをインストールします。
  • エッジノードでシェフクライアントの実行をトリガーするか、間隔を待機します。

システムは、パッケージのインストール、ユーザーの作成、テンプレートから生成された構成ファイルなどのように構成されます。

リモートシステム上の設定ファイル、アプリケーションデータ、その他を直接手動で編集することはほとんどありません。変更はローカルリポジトリを介して行われ、マスターにプッシュされます。インスタンスを強制終了して再起動しなければならない場合でも、システムは毎回正しく設定されることを知っています。

構成に必要なファイルは、Chefサーバーから直接提供されます。Chefサーバーは、単なるWebアプリケーション(merb、Apache + Passengerで実行)です。クライアントのアクセスは、openid認証を介して制御されます。

私の構成にはNagiosとMuninへのフックが含まれているため、それらをセットアップするために手動で何もすることなく、モニターとトレンド分析も取得できます。

最近のベストプラクティスは、自動構成管理に傾いています。まだ手動で作業している場合は、一生懸命働いています。


3

ssh、vim、wgetの何が問題になっていますか?私の意見では、ほとんどのWindowsユーザーには知られていない宝石です。:-)

FTPまたはSFTP経由でgVimをリモートで使用することがあります。

LinuxマシンでGUIを使用する場合は、ローカルホストでXサーバー(1つはCygwinを参照)を実行し、ssh接続を介してディスプレイを転送できます。

Linuxを管理するための費用や手間をかける価値のあるVPNソリューションを考えたことはありません。

開発を行っており、サーバーで開発ジョブを実行する必要がある場合は、サーバーにリビジョン管理クライアントをセットアップし、リモートでログインし、クライアントを同期して、プロセスを実行するだけです。


3

リモートWindowsボックスを管理するのは簡単です。なぜなら、単純にリモートデスクトップでネットワーク経由でファイルを転送できます。Linuxの世界でこれに相当するものはありますか?

このトローリングは意図されていますか?

Windowsボックスのリモート管理は簡単ではありません。UNIXボックスのリモート管理は、リモートで管理され、ネットワーク上にあるように設計されているためです。Windowsの場合、ネットワーク上で生きるためにゼロから設計されていないシステムへのボルトオンでした。

これは逸話ですが、さまざまな企業での経験から、Linuxボックスのシステム管理者に対するサーバーの比率は、Windowsの場合よりもはるかに高くなっています。Windowsでの自動化は簡単ではなく、GUIはスクリプトよりも常に遅いためです。そうは言っても、Windowsインフラストラクチャを簡単に管理できるWindows管理者がいますが、これらの管理者は非常にまれです。

必要なツールはすべて、すべてのLinuxディストリビューションでデフォルトで利用可能です。グラフィカルログインが必要な場合は、CPUとメモリを浪費するだけで、Windowsで発生するのと同じ問題が発生します。そして、すでに述べたように、ほんの一握り以上のボックスについては、puppet、chef、cfengine、または他の多くの利用可能なツールを検討する必要があります。


1
リモートウィンドウボックスの管理のエクスペリエンスは、デスクトップとまったく同じという意味で、Trivialを意味しました。学ぶ必要はありません。SSHを介して作業することは、瓶の中に船を作るようなものです。この小さな穴から、長いピンセットでサーバーに触れることができます。皆さんが実際に使用しており、既に使用しているコマンドラインツールを楽しんでいることに本当に驚きました。私は見落としていた豊富なツールを見つけることを期待していました。
ジェイソンケスター

2

SSHを使用して「少数」のボックスを管理していると言います。同じコマンドを一度にすべてのコマンドに書き込む場合は、ClusterSSHを強くお勧めします(それらの目的が似ている場合)。

http://www.linux.com/learn/tutorials/413853:managing-multiple-linux-servers-with-clusterssh

使用法は「cssh -l username clustername」と同じくらい簡単です。これにより、一度にまたは個別に管理できる多くのuxtermウィンドウが開きます。クラスターは、構成ファイル内のIPのリストによって定義されます。私が知る限り、欠けているのはXサポートだけです。

編集:マルチターミナルレイアウトを簡単に保存および復元できるため、ターミネーターに移行しました。また、必要に応じて10個のXトンネルを同時に取得できます。サーバーコンピューターとクライアントコンピューターの両方を同時に簡単に構成できます。

また、Fabricは、クライアントでソフトウェアの更新を行うときに便利です。基本的には、すべてのzip / scp / unzip / cpを置き換えます。


1

私が使う:

  • SSH-アクセス用
  • SCP-ファイルのコピー
  • SSHFS-ドライブまたはディレクトリをマウントする必要がある場合
  • git-設定を保存する

私の設定をバージョン管理下に置くことは、おそらく私がした最も賢いことでした。管理ベースのフットプリントと攻撃対象を減らすために、可能な限り頻繁にSSHベースのツールを使用しています。

現在、私のgitリポジトリはすべてローカルです。将来的には、構成をリモートリポジトリに移動します。



0

SSHは私にとって常に十分でした。X11は本質的にリモートデスクトップですが、それだけでは暗号化されないため、本質的に安全ではありませんが、他のオプションもあります。ただし、SSH接続を介してトンネリングできます(追加のポートを開く必要がないという利点があります)。もちろん、これはサーバーにX環境がインストールされていることを前提としています。

SFTP(追加のポートをオープンする必要はありませんどのように再びSSH経由でのftpである)、サーバー上のファイルを置くために使用することができなく、プルそれらの良い窓SFTPクライアントはで見つけることができますhttp://filezilla-project.org/


0

ボックスにsshし、コマンドラインを変更し、変更が簡単な場合はvi / nanoなどのエディターで変更します。複数のソースコードを同時に編集するなど、ファイルのより複雑な変更には、Mac OS XでBBEditを使用します。SCPを使用してファイルシステムにアクセスできます。WindowsやLinux用のそのようなエディタがあると確信しています。sshfsは、sshを使用してリモートでファイルシステムにアクセスする方法です。


0

間違いなくPuTTY; sshクライアントの他に、WindowsベースのSCPクライアントもあります。


0

Linux用のssh上のコマンドライン(X11もインストールされていないため)および私のAppleマシン用のsshとARDの混合。

AFP over TCPは途方もなく遅いため、Apple Remote Desktopを使用してファイルを転送することはありません。使用するだけscpです。


0

リモートのグラフィカルアクセスが必要な場合は、ほぼ確実にVNCをセットアップする必要があります。

SSHを介してリモートでファイルを編集する場合、いくつかのオプションがあります。

  • KDEツール(Kate、KDevelop)を使用している場合、魚を使用しますプロトコルをます。
  • FUSEをセットアップするを、リモートボリュームを(自動)マウントします。
  • 使用muCommander(クロスプラットフォーム、グラフィカルmc前後にあなたのファイルを移動するには)
  • 一部のテキストエディタ(例:MacのTextWrangler)は、sshを介したファイルの取得とそれらの前後への移動をサポートしています。

ファイルを編集したら、SSHを使用して、たとえばコンパイルを開始します。

考慮すべきもう1つのことは、バージョン管理システムの使用です。 bzrは本当に素晴らしいです。セットアップが簡単で、使いやすいように設計されています。1台のコンピューターで作業し、更新プログラムをプッシュし、サーバーで更新プログラムをプルし、コマンドを実行し、問題が発生した場合は元に戻すことができます。


0

ほとんどの場合、SSHがジョブを実行します。 使用可能なコマンドラインツールを学習するのは時間の価値があります。使用したいGUIツールがある場合は、VNCを使用します。

ファイルを移動するには、通常、CFIS / SAMBA共有をローカルマシンにマウントします。


0

簡単な変更のために、SSHとSCPがトリックを行います。多数のマシンで変更を加える必要がある場合は、構成管理システムを検討する必要があります。サービスを開始/停止し、構成ファイルの内容を変更し、システムが既知の状態にあることを確認できます。

私はBcfg2を使用することを好みますが、PuppetCFEngineも人気があります。

すべてのサーバーでBcfg2を1時間ごとに実行していますが、手動で実行することもできます。すべてのシステム構成ファイルの中央バージョン管理リポジトリがあるため、行われた変更を追跡できます。システムは非常にうまく機能し、サーバーに手動でログインして調整することからの大きなステップアップです。



0

Windowsシステムの管理は常に「重い」ものでした。つまり、完全なウィンドウ環境が必要です。そのためには、オンサイトまたはリモートデスクトップやVNCなどのネットワークが重いアプリケーションが必要です。

UNIXはネットワークを念頭に置いて設計されたため、ツールは見た目がきれいではなく、ネットワーク上で動作するように設計されています。UNIXサーバーには、そのウィンドウ環境(通常はX11)をセットアップしないでください。

SSH、wget、およびvimの最小限のインターフェイスは、ネットワークに非常に役立ちます。実際、viは300ボーのモデム回線で動作するように設計されています。

実際、リモートのUNIXおよびLinuxシステムでの作業を支援するグラフィカルツールがあります(wspは1つでしたが、gvimは別の場合があります)。

UNIXシステムを管理する通常の方法は、マシンにログインしてマシン自体で作業することです。ファイルを編集するためだけにファイルを移動する必要はありません。覚えておく必要がある唯一のことは、構成が適切であることを確認し、可能な場合はテストすることです。


0

アクセスするSSH、限られた量のファイルを転送する必要がある場合はscp。本当に必要な場合は、SMBFS / SAMBAを介した共有ディレクトリ。通常、これは時間の無駄です。優秀な* nix-competent従業員の一部は、HTTPS経由でローカルサブネットアクセスにロックされたwebminを使用しています。


0

シェリナボックス

Shell In A Box(shellinaboxと発音)は、Markus Gutschkeによって作成されたWebベースのターミナルエミュレーターです。指定されたポートでWebベースのSSHクライアントとして実行される組み込みのWebサーバーがあり、Webターミナルエミュレーターを使用して、AJAX / JavaScriptおよびCSS対応ブラウザーを使用してLinuxサーバーSSHシェルにリモートでアクセスおよび制御するように促します。 FireSSHなどの追加のブラウザプラグイン。— http://www.tecmint.com/shell-in-a-box-a-web-based-ssh-terminal-to-access-remote-linux-servers/

クライアントでの端末エミュレーション

AjaxTermは、Antony LesuisseによるPythonで記述されたAnytermに似たプログラムです。Shell In A Boxは、Markus GutschkeによるAnytermに似たプログラムで、Cで記述されています。AnytermやAjaxtermとは異なり、サーバーではなくブラウザでターミナルエミュレーションを行います— http://anyterm.org/demos.html#secid2249226

Butterflyは、フル機能のクライアント側でエミュレートされたWebターミナルを駆動するWebサーバー(Pythonで作成)です。


1
いやー!! Shell in a Boxとても安全ではありません!
ewwhite 14年

これまでにButterflyを使用したことがありますか?
ペグ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.