17.4.5. Augeas と libguestfs を使ってスクリプトを作成する

libguestfs と Augeas を組み合わせると、Linux ゲスト仮想マシンの設定を操作するスクリプトを作成する場合に便利です。たとえば、以下のスクリプトでは Augeas を使ってゲスト仮想マシンのキーボード設定を解析し、レイアウトを出力します。以下の例は Red Hat Enterprise Linux で実行するゲスト仮想マシンでのみ機能することに注意してください。
#!/bin/bash -
 set -e
 guestname="$1"
 
 guestfish -d "$1" -i --ro <<'EOF'
   aug-init / 0
   aug-get /files/etc/sysconfig/keyboard/LAYOUT
 EOF
Augeas は設定ファイルの修正に使用することもできます。キーボードのレイアウトを 変更 できるよう上記のスクリプトを修正することができます。
#!/bin/bash -
 set -e
 guestname="$1"
 
 guestfish -d "$1" -i <<'EOF'
   aug-init / 0
   aug-set /files/etc/sysconfig/keyboard/LAYOUT '"gb"'
   aug-save
 EOF
この 2 つのスクリプトでは異なる点が 3 カ所あります。
  1. 2 番目のスクリプトには --ro オプションがありません。ゲスト仮想マシンに書き込み権限を与えるためです。
  2. aug-get コマンドが aug-set コマンドに変わっています。値を新たに読み取りに行くのではなく、それを修正するためです。新しい値は "gb" になります (引用符を含む)。
  3. Augeas によって変更をディスクに書き込むよう aug-save コマンドが使用されています。

注記

Augeas の詳細については、Web サイト http://augeas.net をご覧ください。
guestfish では本ガイドでは取り上げきれないほどの多くのことができます。たとえば、ディスクイメージをゼロから作成することができます。
guestfish -N fs
または、ディスクイメージからディレクトリー全体をコピーします。
><fs> copy-out /home /tmp/home
詳細については guestfish(1) の man ページをご覧ください。