3.7. Supported Image Customizations
A number of image customizations are supported in blueprints. In order to make use of these options, you need to initially configure them in the blueprint and then use the command push to import the modified blueprint to Image Builder.
Note
These customizations are not currently supported in the accompanying `cockpit-composer` GUI.
- Set the image host name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [customizations] hostname = "baseimage"
[customizations] hostname = "baseimage"
- User specifications for the resulting system image
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [[customizations.user]] name = "USER-NAME" description = "USER-DESCRIPTION" password = "PASSWORD-HASH" key = "PUBLIC-SSH-KEY" home = /home"/USER-NAME/" shell = "/usr/bin/bash" groups = ["users", "wheel"] uid = NUMBER gid = NUMBER
[[customizations.user]] name = "USER-NAME" description = "USER-DESCRIPTION" password = "PASSWORD-HASH" key = "PUBLIC-SSH-KEY" home = /home"/USER-NAME/" shell = "/usr/bin/bash" groups = ["users", "wheel"] uid = NUMBER gid = NUMBER
Only the user name is required, you can leave out any other lines.
Replace PASSWORD-HASH with the actual password hash. To generate the hash, use a command such as:
python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'
$ python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'
Important
To generate the hash, you must have the
python3
package on your system. Use the following command to install the package:
yum install python3
# yum install python3
Replace PUBLIC-SSH-KEY with the actual public key.
Repeat this block for every user you want to include.
- Group specifications for the resulting system image
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [[customizations.group]] name = "GROUP-NAME" gid = NUMBER
[[customizations.group]] name = "GROUP-NAME" gid = NUMBER
Repeat this block for every group you want to include.- Set an existing user's ssh key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [[customizations.sshkey]] user = "root" key = "PUBLIC-SSH-KEY"
[[customizations.sshkey]] user = "root" key = "PUBLIC-SSH-KEY"
Note
This option is only applicable for existing users. To create a user and set an ssh key, use the User specifications for the resulting system image customization.
- Append a kernel boot parameter option to the defaults
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [[customizations.kernel]] append = "KERNEL-OPTION"
[[customizations.kernel]] append = "KERNEL-OPTION"
- Set the image host name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [customizations] hostname = "BASE-IMAGE"
[customizations] hostname = "BASE-IMAGE"
- Add a group for the resulting system image
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [[customizations.group]] name = "USER-NAME" gid = NUMBER
[[customizations.group]] name = "USER-NAME" gid = NUMBER
Only the name is required and GID is optional.- Set the timezone and the Network Time Protocol (NTP) servers for the resulting system image
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [customizations.timezone] timezone = "TIMEZONE" ntpservers = NTP-SERVER
[customizations.timezone] timezone = "TIMEZONE" ntpservers = NTP-SERVER
If you do not set a timezone, the system uses Universal Time, Coordinated (UTC) as default. Setting NTP servers is optional.- Set the locale settings for the resulting system image
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [customizations.locale] language = "[LANGUAGE]" keyboard = "KEYBOARD"
[customizations.locale] language = "[LANGUAGE]" keyboard = "KEYBOARD"
Setting both language and keyboard options is mandatory. You can add multiple languages. The first language you add will be the primary language and the other languages will be secondary.- Set the firewall for the resulting system image
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [customizations.firewall] port = "[PORTS]"
[customizations.firewall] port = "[PORTS]"
You can use the numeric ports, or theirs names from the `/etc/services` file to enable or disable lists.- Set which services to enable during the boot time
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [customizations.services] enabled = "[SERVICES]" disabled = "[SERVICES]"
[customizations.services] enabled = "[SERVICES]" disabled = "[SERVICES]"
You can control which services to enable during the boot time. Some image types already have services enabled or disabled so that the image works correctly and this setup cannot be overridden.