~cloud-init-dev/cloud-init/trunk

« back to all changes in this revision

Viewing changes to doc/examples/cloud-config-disk-setup.txt

  • Committer: Scott Moser
  • Date: 2016-08-10 15:06:15 UTC
  • Revision ID: smoser@ubuntu.com-20160810150615-ma2fv107w3suy1ma
README: Mention move of revision control to git.

cloud-init development has moved its revision control to git.
It is available at 
  https://code.launchpad.net/cloud-init

Clone with 
  git clone https://git.launchpad.net/cloud-init
or
  git clone git+ssh://git.launchpad.net/cloud-init

For more information see
  https://git.launchpad.net/cloud-init/tree/HACKING.rst

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Cloud-init supports the creation of simple partition tables and file systems
2
 
# on devices.
3
 
 
4
 
# Default disk definitions for AWS
5
 
# --------------------------------
6
 
# (Not implemented yet, but provided for future documentation)
7
 
 
8
 
disk_setup:
9
 
   ephmeral0:
10
 
       table_type: 'mbr'
11
 
       layout: True
12
 
       overwrite: False
13
 
 
14
 
fs_setup:
15
 
   - label: None,
16
 
     filesystem: ext3
17
 
     device: ephemeral0
18
 
     partition: auto
19
 
 
20
 
# Default disk definitions for Windows Azure
21
 
# ------------------------------------------
22
 
 
23
 
device_aliases: {'ephemeral0': '/dev/sdb'}
24
 
disk_setup:
25
 
    ephemeral0:
26
 
         table_type: mbr
27
 
         layout: True
28
 
         overwrite: False
29
 
 
30
 
fs_setup:
31
 
    - label: ephemeral0
32
 
      filesystem: ext4
33
 
      device: ephemeral0.1
34
 
      replace_fs: ntfs
35
 
 
36
 
 
37
 
# Default disk definitions for SmartOS
38
 
# ------------------------------------
39
 
 
40
 
device_aliases: {'ephemeral0': '/dev/sdb'}
41
 
disk_setup:
42
 
    ephemeral0:
43
 
         table_type: mbr
44
 
         layout: False
45
 
         overwrite: False
46
 
 
47
 
fs_setup:
48
 
    - label: ephemeral0
49
 
      filesystem: ext3
50
 
      device: ephemeral0.0
51
 
 
52
 
# Cavaut for SmartOS: if ephemeral disk is not defined, then the disk will
53
 
#    not be automatically added to the mounts.
54
 
 
55
 
 
56
 
# The default definition is used to make sure that the ephemeral storage is
57
 
# setup properly.
58
 
 
59
 
# "disk_setup": disk partitioning
60
 
# --------------------------------
61
 
 
62
 
# The disk_setup directive instructs Cloud-init to partition a disk. The format is:
63
 
 
64
 
disk_setup:
65
 
   ephmeral0:
66
 
       table_type: 'mbr'
67
 
       layout: 'auto'
68
 
   /dev/xvdh:
69
 
       table_type: 'mbr'
70
 
       layout:
71
 
           - 33
72
 
           - [33, 82]
73
 
           - 33
74
 
       overwrite: True
75
 
 
76
 
# The format is a list of dicts of dicts. The first value is the name of the
77
 
# device and the subsequent values define how to create and layout the
78
 
# partition.
79
 
# The general format is:
80
 
#    disk_setup:
81
 
#        <DEVICE>:
82
 
#            table_type: 'mbr'
83
 
#            layout: <LAYOUT|BOOL>
84
 
#            overwrite: <BOOL>
85
 
#
86
 
# Where:
87
 
#    <DEVICE>: The name of the device. 'ephemeralX' and 'swap' are special
88
 
#                values which are specific to the cloud. For these devices
89
 
#                Cloud-init will look up what the real devices is and then
90
 
#                use it.
91
 
#
92
 
#                For other devices, the kernel device name is used. At this
93
 
#                time only simply kernel devices are supported, meaning
94
 
#                that device mapper and other targets may not work.
95
 
#
96
 
#                Note: At this time, there is no handling or setup of
97
 
#                device mapper targets.
98
 
#
99
 
#    table_type=<TYPE>: Currently the following are supported:
100
 
#                    'mbr': default and setups a MS-DOS partition table
101
 
#
102
 
#                Note: At this time only 'mbr' partition tables are allowed.
103
 
#                    It is anticipated in the future that we'll have GPT as
104
 
#                    option in the future, or even "RAID" to create a mdadm
105
 
#                    RAID.
106
 
#
107
 
#    layout={...}: The device layout. This is a list of values, with the
108
 
#                percentage of disk that partition will take.
109
 
#                Valid options are:
110
 
#                    [<SIZE>, [<SIZE>, <PART_TYPE]]
111
 
#
112
 
#                Where <SIZE> is the _percentage_ of the disk to use, while
113
 
#                <PART_TYPE> is the numerical value of the partition type.
114
 
#
115
 
#                The following setups two partitions, with the first
116
 
#                partition having a swap label, taking 1/3 of the disk space
117
 
#                and the remainder being used as the second partition.
118
 
#                    /dev/xvdh':
119
 
#                        table_type: 'mbr'
120
 
#                        layout:
121
 
#                            - [33,82]
122
 
#                            - 66
123
 
#                        overwrite: True
124
 
#
125
 
#                When layout is "true" it means single partition the entire
126
 
#                device.
127
 
#
128
 
#                When layout is "false" it means don't partition or ignore
129
 
#                existing partitioning.
130
 
#
131
 
#                If layout is set to "true" and overwrite is set to "false",
132
 
#                it will skip partitioning the device without a failure.
133
 
#
134
 
#    overwrite=<BOOL>: This describes whether to ride with saftey's on and
135
 
#                everything holstered.
136
 
#
137
 
#                'false' is the default, which means that:
138
 
#                    1. The device will be checked for a partition table
139
 
#                    2. The device will be checked for a file system
140
 
#                    3. If either a partition of file system is found, then
141
 
#                        the operation will be _skipped_.
142
 
#
143
 
#                'true' is cowboy mode. There are no checks and things are
144
 
#                    done blindly. USE with caution, you can do things you
145
 
#                    really, really don't want to do.
146
 
#
147
 
#
148
 
# fs_setup: Setup the file system
149
 
# -------------------------------
150
 
#
151
 
# fs_setup describes the how the file systems are supposed to look.
152
 
 
153
 
fs_setup:
154
 
   - label: ephemeral0
155
 
     filesystem: 'ext3'
156
 
     device: 'ephemeral0'
157
 
     partition: 'auto'
158
 
   - label:  mylabl2
159
 
     filesystem: 'ext4'
160
 
     device: '/dev/xvda1'
161
 
   - special:
162
 
     cmd: mkfs -t %(FILESYSTEM)s -L %(LABEL)s %(DEVICE)s
163
 
     filesystem: 'btrfs'
164
 
     device: '/dev/xvdh'
165
 
 
166
 
# The general format is:
167
 
#    fs_setup:
168
 
#        - label: <LABEL>
169
 
#          filesystem: <FS_TYPE>
170
 
#          device: <DEVICE>
171
 
#          partition: <PART_VALUE>
172
 
#          overwrite: <OVERWRITE>
173
 
#          replace_fs: <FS_TYPE>
174
 
#
175
 
# Where:
176
 
#     <LABEL>: The file system label to be used. If set to None, no label is
177
 
#        used.
178
 
#
179
 
#    <FS_TYPE>: The file system type. It is assumed that the there
180
 
#        will be a "mkfs.<FS_TYPE>" that behaves likes "mkfs". On a standard
181
 
#        Ubuntu Cloud Image, this means that you have the option of ext{2,3,4},
182
 
#        and vfat by default.
183
 
#
184
 
#    <DEVICE>: The device name. Special names of 'ephemeralX' or 'swap'
185
 
#        are allowed and the actual device is acquired from the cloud datasource.
186
 
#        When using 'ephemeralX' (i.e. ephemeral0), make sure to leave the
187
 
#        label as 'ephemeralX' otherwise there may be issues with the mounting
188
 
#        of the ephemeral storage layer.
189
 
#
190
 
#        If you define the device as 'ephemeralX.Y' then Y will be interpetted
191
 
#        as a partition value. However, ephermalX.0 is the _same_ as ephemeralX.
192
 
#
193
 
#    <PART_VALUE>:
194
 
#        Partition definitions are overwriten if you use the '<DEVICE>.Y' notation.
195
 
#
196
 
#        The valid options are:
197
 
#        "auto|any": tell cloud-init not to care whether there is a partition
198
 
#            or not. Auto will use the first partition that does not contain a
199
 
#            file system already. In the absence of a partition table, it will
200
 
#            put it directly on the disk.
201
 
#
202
 
#            "auto": If a file system that matches the specification in terms of
203
 
#            label, type and device, then cloud-init will skip the creation of
204
 
#            the file system.
205
 
#
206
 
#            "any": If a file system that matches the file system type and device,
207
 
#            then cloud-init will skip the creation of the file system.
208
 
#
209
 
#            Devices are selected based on first-detected, starting with partitions
210
 
#            and then the raw disk. Consider the following:
211
 
#                NAME     FSTYPE LABEL
212
 
#                xvdb
213
 
#                |-xvdb1  ext4
214
 
#                |-xvdb2
215
 
#                |-xvdb3  btrfs  test
216
 
#                \-xvdb4  ext4   test
217
 
#
218
 
#            If you ask for 'auto', label of 'test, and file system of 'ext4'
219
 
#            then cloud-init will select the 2nd partition, even though there
220
 
#            is a partition match at the 4th partition.
221
 
#
222
 
#            If you ask for 'any' and a label of 'test', then cloud-init will
223
 
#            select the 1st partition.
224
 
#
225
 
#            If you ask for 'auto' and don't define label, then cloud-init will
226
 
#            select the 1st partition.
227
 
#
228
 
#            In general, if you have a specific partition configuration in mind,
229
 
#            you should define either the device or the partition number. 'auto'
230
 
#            and 'any' are specifically intended for formating ephemeral storage or
231
 
#            for simple schemes.
232
 
#
233
 
#        "none": Put the file system directly on the device.
234
 
#
235
 
#        <NUM>: where NUM is the actual partition number.
236
 
#
237
 
#    <OVERWRITE>: Defines whether or not to overwrite any existing
238
 
#        filesystem.
239
 
#
240
 
#        "true": Indiscriminately destroy any pre-existing file system. Use at
241
 
#            your own peril.
242
 
#
243
 
#        "false": If an existing file system exists, skip the creation.
244
 
#
245
 
#    <REPLACE_FS>: This is a special directive, used for Windows Azure that
246
 
#        instructs cloud-init to replace a file system of <FS_TYPE>. NOTE:
247
 
#        unless you define a label, this requires the use of the 'any' partition
248
 
#        directive.
249
 
#
250
 
# Behavior Caveat: The default behavior is to _check_ if the file system exists.
251
 
#    If a file system matches the specification, then the operation is a no-op.