実現したいこと
pythonで、paramikoでネットワーク機器にSSH接続後に設定変更を行いたい
前提
・ネットワーク機器(fortigate)にアクセスして設定変更を行いたい
・対話型インタプリタだと問題なく実行されるが、コードを記述したファイルから実行すると設定変更が反映されない
・設定変更のコマンド自体が正しい事は確認している
該当のソースコード
python3
1IP_ADDRESS = '192.168.1.1' 2USER_NAME = 'AAA' 3PASSWORD = 'BBB' 4 5# paramikoのインポート 6import paramiko 7 8# sshクライアントの作成 9client = paramiko.SSHClient() 10client.set_missing_host_key_policy(paramiko.WarningPolicy()) 11 12# 上記で設定したIPアドレス、ユーザー名、キーファイルを渡す 13client.connect(IP_ADDRESS, 14 username=USER_NAME, 15 password=PASSWORD, 16 timeout=5.0) 17 18# コマンド設定 19object_name = "test1" 20object = "192.168.1.1/24" 21 22command = f"config firewall address \nedit {object_name} \nset subnet {object} \nend" 23 24# コマンドの実行 25stdin, stdout, stderr = client.exec_command(command) 26
試したこと
・上記を対話型インタプリタで実行すると、問題なく設定変更が反映される
・上記をファイルから実行すると、設定変更が反映されない
・コードの最後にprint(stdout.read())を追加するとファイルから実行してもなぜか設定変更が反映される

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。