metalsmith.instance_config module¶
-
class
metalsmith.instance_config.CloudInitConfig(ssh_keys=None, user_data=None)¶ Bases:
metalsmith.instance_config.GenericConfigConfiguration of the target instance using cloud-init.
Compared to
GenericConfig, this adds support for managing users.Variables: - ssh_keys – List of SSH public keys.
- user_data – Cloud-init script as a dictionary.
- users – Users to add on first boot.
-
add_user(name, admin=True, password_hash=None, sudo=False, **kwargs)¶ Add a user to be created on first boot.
Parameters: - name – user name.
- admin – whether to add the user to the admin group (wheel).
- password_hash – user password hash, if password authentication is expected.
- sudo – whether to allow the user sudo without password.
- kwargs – other arguments to pass.
-
populate_user_data()¶ Get user data for this configuration.
Takes the custom user data and appends requested users to it.
Returns: user data as a string.
-
class
metalsmith.instance_config.GenericConfig(ssh_keys=None, user_data=None)¶ Bases:
objectConfiguration of the target instance.
The information attached to this object will be passed via a configdrive to the instance’s first boot script (e.g. cloud-init).
This class represents generic configuration compatible with most first-boot implementations. Use
CloudInitConfigfor features specific to cloud-init.Variables: - ssh_keys – List of SSH public keys.
- user_data – User data as a string.
-
generate(node, hostname=None)¶ Generate the config drive information.
Parameters: - node – Node object.
- hostname – Desired hostname (defaults to node’s name or ID).
Returns: configdrive contents as a dictionary with keys:
meta_datameta data dictionary
user_datauser data as a string
-
populate_user_data()¶ Get user data for this configuration.
Can be overridden to provide additional features.
Returns: user data as a string.