リモートからNutanix(CVM)を操作。はじめてのPython
やりたいこと
運用担当者さんと会話すると自動化(スクリプト化)が必須と言われることが多く、
運用の自動化の第一歩としてローカルPCからCVMを触ってみます。
改めて一から整理
準備
・Pythonのインストール
検索してインストール
・Paramikoのインストール
Pythonインストール後、コマンドプロンプトから下記を実行すると、paramikoがインストールできます(既に入ってるけど)
pip install paramiko
c:\cli>pip install paramiko
Requirement already satisfied: paramiko in c:\users\tatsuhiromatsumoto\appdata\local\programs\python\python38\lib\site-packages (2.7.1)
Requirement already satisfied: bcrypt>=3.1.3 in c:\users\tatsuhiromatsumoto\appdata\local\programs\python\python38\lib\site-packages (from paramiko) (3.1.7)
Requirement already satisfied: pynacl>=1.0.1 in c:\users\tatsuhiromatsumoto\appdata\local\programs\python\python38\lib\site-packages (from paramiko) (1.3.0)
Requirement already satisfied: cryptography>=2.5 in c:\users\tatsuhiromatsumoto\appdata\local\programs\python\python38\lib\site-packages (from paramiko) (2.8)
Requirement already satisfied: cffi>=1.1 in c:\users\tatsuhiromatsumoto\appdata\local\programs\python\python38\lib\site-packages (from bcrypt>=3.1.3->paramiko) (1.13.2)
Requirement already satisfied: six>=1.4.1 in c:\users\tatsuhiromatsumoto\appdata\local\programs\python\python38\lib\site-packages (from bcrypt>=3.1.3->paramiko) (1.13.0)
Requirement already satisfied: pycparser in c:\users\tatsuhiromatsumoto\appdata\local\programs\python\python38\lib\site-packages (from cffi>=1.1->bcrypt>=3.1.3->paramiko) (2.19)
WARNING: You are using pip version 19.2.3, however version 19.3.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
サンプルコード
cVMへログインし情報を取ってくる
サンプルスクリプト
import json, paramiko
IP = '1.1.1.1'
USER = 'nutanix'
PASSWORD = 'pass-pass'
def main():
output = get_df(IP, USER, PASSWORD)
print(output)
def get_df(ip, user, password):
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(ip, username=user, password=password, timeout=3.0)
command = '/usr/local/nutanix/bin/acli host.list'
(stdin, stdout, stderr) = client.exec_command(command)
output = stdout.read().decode()
client.close()
return output
if __name__ == '__main__':
main()
実行結果
c:\cli>python acli-list.py
Hypervisor address Host UUID Schedulable Hypervisor Type Hypervisor Name
1.1.1.1 a99e2678-3f60-4b37-b201-5d0cfd226ed5 True kKvm AHV
1.1.1.2 1a1d1102-64ab-4cc1-a736-684a4ed83464 True kKvm AHV
1.1.1.3 de80adb3-f889-4139-bd68-b6e1d974d036 True kKvm AHV
1.1.1.4 a0dd6b68-25e5-48af-ab5f-e9ba62f67657 True kKvm AHV
まとめ
Pythonを使ってCVMの情報を取ってみました。
サンプルコードのコマンド部分を変更すれば各種コマンドが実行できます。Hello Worldレベルです。
一度リモートから実行することでスクリプト化、自動化の敷居が下がると思います。
Author And Source
この問題について(リモートからNutanix(CVM)を操作。はじめてのPython), 我々は、より多くの情報をここで見つけました https://qiita.com/matsumo2019/items/d3249e443936499ceff1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .