質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

KVM

KVM【Kernel-based Cirtual Machine】は、 Linux上で仮想化環境を利用するためのソフトウェアです。 1台のPC上で複数のOSを同時に動作させるために必要な制御を行う 仮想化環境の仕組みを提供します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1736閲覧

KVM上に存在するゲストOSにIPアドレスを設定させたい

kenmero

総合スコア30

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

KVM

KVM【Kernel-based Cirtual Machine】は、 Linux上で仮想化環境を利用するためのソフトウェアです。 1台のPC上で複数のOSを同時に動作させるために必要な制御を行う 仮想化環境の仕組みを提供します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/05/17 12:56

環境
言語:Python3系
仮想マシン:KVM
OS:rhel7.5

自動的にKVM上に存在するゲストOSにIPアドレスを設定させたいです。
KVMからvirsh console相当のものを使用して、
ゲストOSに接続して、IFファイルの設定を行いたいのですが何時間探しても
いい方法が見つかりません。

今考えている案としては、
①pexpectを用いて対話形式で処理を実行する。
→どのコマンドまで利用可能なのかわからない。
※cdコマンドはエラーが発生した

②libvirt APIを用いてのファイル編集
→ゲストOSへの接続後に、ファイル編集を行うためのモジュールが用意されているのか
見つけられていない

③DHCPのサブネットを特定のIPアドレスにすることで、
一時的にIPでの接続を確立させる

どれもいまいちな状況で、頭が混乱するばかり、、、
モヤモヤから抜け出せません。

何かいい案はありますでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

virt-copy-in コマンドでホストOS上に用意したファイルをコピーしてしまう、というのはどうでしょうか。

オンラインの変更が危険なので、一度ゲストOSをシャットダウンしないといけないとか、外部コマンドなのでやり方がインチキくさいというのはちょっとありますが・・。

解決の参考になれば幸いです。

投稿2019/05/18 08:46

Eggpan

総合スコア2665

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenmero

2019/05/23 16:01

回答ありがとうございます 遅くなってしまい申し訳ありません。 virt-copy-in使えそうですね 基本Ansibleを使って管理を行っていこうと思うので、 virt console接続できない場合は、 templateモジュールでホストOS側に設定ファイルを配置して それをvirt-copy-inコマンドで設定するという流れで実現できそうですね! ありがとうございます<m(__)m>
guest

0

pexpectでtimeoutエラーですか?
ターミナルをexpectの内容にするとできるかと思われますが、いかがでしょう?

投稿2019/05/17 13:11

mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenmero

2019/05/17 15:23

ご返答ありがとうございます。 timeoutエラーではありません。 pexpectの場合ですとsampleではありますが、 import pexpect import sys p= pexpect.spawn("/bin/bash") p.logfile_read =sys.stdout print("---------------") p.expect("[$#]") p.send("pwd\n") p.expect("[$#]") text = p.send("vi test.txt\n") ========= fileを編集する ========= p.expect("[$#]") のようなことをしたいですが、 上手くいきません。
mkgrei

2019/05/18 14:35 編集

viで編集をしたいのであれば、interactを使うのではないでしょうか? 変更内容が事前に決まっている場合、sedかcatを使うのが一般的です。 「cdコマンドはエラーが発生した」ではどのようなエラーかをご提示いただければ、何かわかるかもしれません。
kenmero

2019/05/23 16:03

回答ありがとうございます。 返事遅くなってしまい申し訳ありません。 変更内容は事前に決まっているので、 コマンドで編集をする場合は、sedコマンドを使えば実現できそうですね! 新しい発見です。 ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問