DUICUO

国産オープンソース自動運用保守システム「CheungSSH」がWebインターフェースを公開(第2部)

特集コンテンツ第1部:中国国産オープンソース自動運用保守システムWebインターフェース「CheungSSH」(第1部)

[張其川のブログからの抜粋] CheungSSH Webにログイン

親切なヒント:

ログイン試行が 5 回を超えると、ログイン IP アドレスが 1 日間ロックされます。

***ログイン後、http://your IP address:port/cheungssh/admin/ でパスワードを変更してください。

管理対象ホストの構成情報を追加する

◆「サーバーを追加」をクリック

◆追加後はこんな感じになります。

標準構成

ここでは、SSHキーバインディングを必要とする一部のツールとは異なり、管理対象サーバー側で特別な設定を必要としない構成を目指しています。CheungSSHでは、シンプルさを最優先にしているため、これは全く不要です。そのため、管理対象サーバーを追加する際は、通常のサーバーへのログイン方法と同じように、サーバーのログインパスワードまたはSSHキーを入力するだけで済みます。シンプルで分かりやすいです!

したがって、詳しく説明する必要はありません。インターフェースを見ると、どのような情報を入力すればよいかがすぐにわかります。CheungSSH を信頼してください。私たちの目標は、ユーザーにとってシンプルにすることです。

高度な設定

sudoログイン

sudo で「はい」を選択すると、コマンド実行時に sudo が有効になり、コマンド実行前に sudo を入力する必要がなくなります。例えば、以前は sudo ifconfig だった場合、今後は ifconfig のみで済みます。CheungSSH が自動的に切り替えます。

su - ルート

su を yes に選択すると、コマンド実行時に su - root が有効になり、コマンド実行前に su - root と入力する必要がなくなります。例えば、以前は su - root の後に ifconfig を実行していた場合、これからは ifconfig のみで済みます。CheungSSH が自動的に切り替えます。

コマンド実行

使用例: whoami コマンドを実行します。このコマンドは管理対象のリモートサーバー上で実行されることに注意してください。

コマンドエコー、機能領域の紹介:

  1. WebSocketについて:
  2. クラス WebSocketServer(オブジェクト):
  3. def __init__(self):
  4. self.socket = なし
  5. def begin (self):
  6. print( 'WebSocketServer を起動します!' )
  7. self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  8. self.socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
  9. self.socket.bind(( "0.0.0.0" ,1337))
  10. 自己.ソケット.listen(50)
  11.   
  12.   
  13. グローバル接続リスト
  14.   
  15.   
  16. 真の場合
  17. i=str(ランダム.randint(90000000000000000000,999999999999999999999))
  18. 接続、アドレス = self.socket.accept()
  19. 「クライアントIP」 、アドレスを印刷
  20. ユーザー名=アドレス[0]
  21. ie_key= '接続' +i
  22. パス= "/"  
  23. newSocket = WebSocket(接続,i, ユーザー名, アドレス, パス, ie_key)
  24. newSocket.start() # スレッドを開始し、run 関数を実行します。
  25. connectionlist[ie_key]=接続 

#p#

サーバーを選択

アプリケーション シナリオ: ネットワーク上に 10,000 台のサーバーがあり、そのうち 1,000 台のみを操作する場合は、タスクを実行するホストを選択できます。

スケジュールされたタスクを追加する

アプリケーションシナリオ:

今夜24時に一部のホストでコマンドを実行してサーバー情報を収集する必要がある場合、徹夜する代わりにこの機能を利用できます。CheungSSHのスケジュールタスクモジュールにこの作業を委任すれば、ぐっすり眠ることができます。

タスクをスケジュールする時間を選択します。これは、Linux システムの日、月、週に対応します。

スケジュールされたタスクの時間を確認すると、Linuxシステムと全く同じ形式になっていることがわかります。そうです、これはオペレーティングシステムのcrontab機能として実装されています。

スケジュールされたタスクを表示する

CheungSSH スケジュールされたタスクビュー

オペレーティング システムのスケジュールされたタスクの表示

  1. [root@cheungssh bin]# crontab -l
  2. */1 */1 */1 */1 */1 /home/cheungssh/mysite/mysite/cheungssh/daemon_FileTransfer.py '{"status": "\u672a\u542f\u52a8", "lasttime": "2015-10-25 18:45:20", "cmd": "", "createtime": "2015-10-25 18:45:20", "sfile": "/var/log", "user": "bo", "fid": "92262569677243366214", "runtype": "download", "runtime": "*/1 */1 */1 */1 */1", "id": "99556469106"}' #92262569677243366214
  3. //1 */1 */1 */1 */1 /home/cheungssh/bin/cheungssh_web.py 94246137977316460425
  4. /home/cheungssh/bin/cheungssh_web.py 91254503983769069002
  5. [root@cheungssh bin]#

ヒント:

CheungSSH はユーザーエクスペリエンスを最優先に考えています。上記のスケジュールタスクは使い方の参考になるかもしれませんが、結果やワークフローが明確でない可能性があります。そのため、説明が必要だと感じました。以前も述べたように、CheungSSH はユーザーにとってシンプルであること、つまり真に使いやすいことを目指しています。これらのスケジュールタスクは、管理対象サーバーではなく、CheungSSH の制御マシンで実行されるという原則に基づいています。これにより運用コストが削減されるだけでなく、管理対象マシンに変更が加えられることなく、安定性を確保し、複雑さを最小限に抑えることができます。

#p#

ファイルのダウンロード

ファイル転送記録

適用シナリオ:すべてのファイルのアップロードとダウンロードを記録しました。転送記録は以下の通りです。

ファイルのダウンロード

ユースケース:リモート管理サーバー上にファイルがあるとします。ファイルの内容を取得する必要がある場合は、ダウンロード機能を使用して、リモートサーバーからCheungSSHサーバーにファイルをダウンロードし、CheungSSHサーバーからローカルPCにダウンロードできます。驚くべきことに、このプロセスはすべて自動で実行されます。

ご注意:ファイルのダウンロードだけでなく、ディレクトリのダウンロードもサポートしています。

リモート サーバーから CheungSSH にファイルをダウンロードすると、正常にダウンロードされたファイルを示すメッセージが自動的にポップアップ表示され、ダウンロードに失敗したファイルも別のメッセージが表示されます。

CheungSSH を使用して、リモート サーバーからダウンロードしたファイルをローカル コンピューターにダウンロードします。

ファイルのアップロード

使用例: 管理対象サーバーにファイルを更新またはアップロードする必要がある場合は、次のアップロード機能を使用できます。

ファイルのアップロードとダウンロードの両方の進行状況が表示されます。

  1. 実際、これを実現するために paramiko の SFTP 関数を使用しました。
  2. def UpdateFile(ip,port,username, password ,UseKey,sfile,dfile):
  3. 試す:
  4. t=paramiko.Transport((ip,port))
  5. UseKey== "Y"の場合:
  6. キーパス=os.path.expanduser( '~/.ssh/id_rsa' )
  7. キー=paramiko.RSAKey.from_private_key_file(KeyPath)
  8. t.connect (username = ユーザー名、pkey =キー)
  9. それ以外
  10. t. connect (ユーザー名 = ユーザー名、パスワード=パスワード)
  11. sftp = paramiko.SFTPClient.from_transport(t)
  12. ret=sftp.put(sfile,dfile)

ご注意:フォルダーをアップロードすることはまだ可能です。

スクリプト管理

スクリプトを実行する

オープンAPI

◆ホスト情報API

◆サーバー実行ログAPI

◆サーバーステータスチェックAPI

◆ファイル転送API

◆コマンド実行API

◆資産情報API

◆スケジュールタスクAPI

◆その他のAPI.....

◆その他の機能

スクリプト実行

◆予定タスク

◆アクセス制御監査

◆権限付与

◆セキュリティ設定

◆その他の機能...

要塞ホストのキャラクターもいます...

ここでは詳しく説明しません。CheungSSHのWebインターフェースを一度ご覧いただければ、使い方は一目瞭然です!私たちはシンプルさにこだわっています!さらにシンプルに!現在、800の組織とユーザーがいますが、この機能の使い方を聞かれることはほとんどありません。皆さんすぐに理解してくれます!

著者について:

[[159906]]

張其川は2012年に入社し、当初はIT Linuxの運用・保守業務に従事していました。2013年にはITシステムの運用・保守業務に異動し、2014年には運用・保守とPython開発の両方に携わりました。2015年には自動化運用・保守に注力し、自動化技術の研究に専念しました。Red HatおよびCentOSオペレーティングシステムの管理、OracleデータベースDBAメンテナンスに精通しています。現在は、シニアPython運用・保守開発エンジニアを務めています。