Go to main content
Oracle® Solaris 11.3 での Puppet を使用した構成管理の実行

印刷ビューの終了

更新: 2016 年 7 月
 
 

Puppet を使用した Oracle Solaris ゾーンの構成

次の例は、Puppet マニフェスト内で zone リソースタイプを宣言することによって Oracle Solaris ゾーン構成を定義する 1 つの方法を示しています。

使用例 8  Puppet を使用した Oracle Solaris ゾーンの構成

puppet describe コマンド (次の部分的な出力例に示されています) を実行することによって、最初に zone リソースタイプに対して宣言できるすべての属性のリストを表示します。

# puppet describe zone
zone
====
Manages Solaris zones.


Parameters
----------

- **archive**
    The archive file containing an archived zone.

- **archived_zonename**
    The archived zone to configure and install

- **brand**

    
    The zone's brand type

- **clone**
    Instead of installing the zone, clone it from another zone.
    If the zone root resides on a zfs file system, a snapshot will be
    used to create the clone; if it resides on a ufs filesystem, a copy of
    the
    zone will be used. The zone from which you clone must not be running.

- **config_profile**
    Path to the config_profile to use to configure a solaris zone.
    This is set when providing a sysconfig profile instead of running the
    sysconfig SCI tool on first boot of the zone.


- **ensure**
    The running state of the zone.  The valid states directly reflect
    the states that `zoneadm` provides.  The states are linear,
    in that a zone must be `configured`, then `installed`, and
    only then can be `running`.  Note also that `halt` is currently
    used to stop zones.
    Valid values are `absent`, `configured`, `installed`, `running`.
.
.
.
- **zonecfg_export**
    Contains the zone configuration information. This can be passed in
    in the form of a file generated by the zonecfg command, in the form
    of a template, or a string.

- **zonepath**
    The path to zone's file system.

Providers
---------
    solaris

zonecfg_export 属性 (前の出力に示されています) を使用すると、zonecfg コマンドを使用してゾーン構成ファイルリソースを次のように作成できます。

# zonecfg -z testzone1
Use 'create' to begin configuring a new zone.
zonecfg:testzone> create
create: Using system default template 'SYSdefault'
zonecfg:testzone> export -f /tmp/zone.cfg
zonecfg:testzone> exit
root@master:~# cat /tmp/zone.cfg
create -b
set zonepath=/system/zones/%{zonename}
set autoboot=false
set autoshutdown=shutdown
set ip-type=exclusive
add anet
set linkname=net0
set lower-link=auto
set configure-allowed-address=true
set link-protection=mac-nospoof
set mac-address=auto
end
root@master:~# cp /tmp/zone.cfg /etc/puppet/modules/mycompany

作成したゾーンは、zone リソースタイプが適用されたときに構成可能になります。Puppet マニフェスト内で zone リソースタイプを次のように宣言します。

zone { 'systemazone':
  zonecfg_export => 'puppet:///modules/mycompany/zone.conf',
  ensure => 'running',
}

ここでは、ensure 属性の値が installed に設定されています。ensure の値は、ゾーンに対して受け入れ可能なステータス (installed および running) に一致しています。この例では、systemazone と呼ばれるゾーンがノード上に作成されています。

最後の手順として、ノードが自身に構成を適用したことを確認します。

# zoneadm list -cv
  ID NAME             STATUS       PATH                       BRAND       IP
   0 global           running      /                          solaris     shared
   - systemazone      running     /system/zones/systemazone  solaris     excl

前のコマンドの出力は、非大域ゾーン systemazone が構成およびインストールされ、実行されていることを示しています。