salt.modules.system

Support for reboot, shutdown, etc on POSIX-like systems.

Note

If you have configured a wrapper such as molly-guard to intercept interactive shutdown commands, be aware that calling system.halt, system.poweroff, system.reboot, and system.shutdown with salt-call will hang indefinitely while the wrapper script waits for user input. Calling them with salt will work as expected.

salt.modules.system.get_computer_desc()

Get PRETTY_HOSTNAME value stored in /etc/machine-info If this file doesn't exist or the variable doesn't exist return False.

Returns:

Value of PRETTY_HOSTNAME if this does not exist False.

Return type:

str

CLI Example:

salt '*' system.get_computer_desc
salt.modules.system.get_computer_name()

Get hostname.

CLI Example:

salt '*' network.get_hostname
salt.modules.system.get_reboot_required_witnessed()

Determine if at any time during the current boot session the salt minion witnessed an event indicating that a reboot is required.

Returns:

True if the a reboot request was witnessed, False otherwise

Return type:

bool

CLI Example:

salt '*' system.get_reboot_required_witnessed
salt.modules.system.get_system_date(utc_offset=None)

Get the system date

Parameters:

utc_offset (str) -- The utc offset in 4 digit (+0600) format with an optional sign (+/-). Will default to None which will use the local timezone. To set the time based off of UTC use "'+0000'". Note: if being passed through the command line will need to be quoted twice to allow negative offsets.

Returns:

Returns the system date.

Return type:

str

CLI Example:

salt '*' system.get_system_date
salt.modules.system.get_system_date_time(utc_offset=None)

Get the system date/time.

Parameters:

utc_offset (str) -- The utc offset in 4 digit (+0600) format with an optional sign (+/-). Will default to None which will use the local timezone. To set the time based off of UTC use "'+0000'". Note: if being passed through the command line will need to be quoted twice to allow negative offsets.

Returns:

Returns the system time in YYYY-MM-DD hh:mm:ss format.

Return type:

str

CLI Example:

salt '*' system.get_system_date_time "'-0500'"
salt.modules.system.get_system_time(utc_offset=None)

Get the system time.

Parameters:

utc_offset (str) -- The utc offset in 4 digit (+0600) format with an optional sign (+/-). Will default to None which will use the local timezone. To set the time based off of UTC use "'+0000'". Note: if being passed through the command line will need to be quoted twice to allow negative offsets.

Returns:

Returns the system time in HH:MM:SS AM/PM format.

Return type:

str

CLI Example:

salt '*' system.get_system_time
salt.modules.system.halt()

Halt a running system

CLI Example:

salt '*' system.halt
salt.modules.system.has_settable_hwclock()

Returns True if the system has a hardware clock capable of being set from software.

CLI Example:

salt '*' system.has_settable_hwclock
salt.modules.system.init(runlevel)

Change the system runlevel on sysV compatible systems

CLI Example:

salt '*' system.init 3
salt.modules.system.poweroff()

Poweroff a running system

CLI Example:

salt '*' system.poweroff
salt.modules.system.reboot(at_time=None)

Reboot the system

at_time

The wait time in minutes before the system will be rebooted.

CLI Example:

salt '*' system.reboot
salt.modules.system.set_computer_desc(desc)

Set PRETTY_HOSTNAME value stored in /etc/machine-info This will create the file if it does not exist. If it is unable to create or modify this file returns False.

Parameters:

desc (str) -- The computer description

Returns:

False on failure. True if successful.

CLI Example:

salt '*' system.set_computer_desc "Michael's laptop"
salt.modules.system.set_computer_name(hostname)

Modify hostname.

CLI Example:

salt '*' system.set_computer_name master.saltstack.com
salt.modules.system.set_reboot_required_witnessed()

This function is used to remember that an event indicating that a reboot is required was witnessed. This function writes to a temporary filesystem so the event gets cleared upon reboot.

Returns:

True if successful, otherwise False

Return type:

bool

salt '*' system.set_reboot_required_witnessed
salt.modules.system.set_system_date(newdate, utc_offset=None)

Set the system date. Use <mm-dd-yy> format for the date.

Parameters:

newdate (str) --

The date to set. Can be any of the following formats:

  • YYYY-MM-DD

  • MM-DD-YYYY

  • MM-DD-YY

  • MM/DD/YYYY

  • MM/DD/YY

  • YYYY/MM/DD

CLI Example:

salt '*' system.set_system_date '03-28-13'
salt.modules.system.set_system_date_time(years=None, months=None, days=None, hours=None, minutes=None, seconds=None, utc_offset=None)

Set the system date and time. Each argument is an element of the date, but not required. If an element is not passed, the current system value for that element will be used. For example, if you don't pass the year, the current system year will be used. (Used by set_system_date and set_system_time)

Updates hardware clock, if present, in addition to software (kernel) clock.

Parameters:
  • years (int) -- Years digit, ie: 2015

  • months (int) -- Months digit: 1 - 12

  • days (int) -- Days digit: 1 - 31

  • hours (int) -- Hours digit: 0 - 23

  • minutes (int) -- Minutes digit: 0 - 59

  • seconds (int) -- Seconds digit: 0 - 59

  • utc_offset (str) -- The utc offset in 4 digit (+0600) format with an optional sign (+/-). Will default to None which will use the local timezone. To set the time based off of UTC use "'+0000'". Note: if being passed through the command line will need to be quoted twice to allow negative offsets.

Returns:

True if successful. Otherwise False.

Return type:

bool

CLI Example:

salt '*' system.set_system_date_time 2015 5 12 11 37 53 "'-0500'"
salt.modules.system.set_system_time(newtime, utc_offset=None)

Set the system time.

Parameters:
  • newtime (str) --

    The time to set. Can be any of the following formats. - HH:MM:SS AM/PM - HH:MM AM/PM - HH:MM:SS (24 hour) - HH:MM (24 hour)

    Note that the salt command line parser parses the date/time before we obtain the argument (preventing us from doing utc) Therefore the argument must be passed in as a string. Meaning you may have to quote the text twice from the command line.

  • utc_offset (str) -- The utc offset in 4 digit (+0600) format with an optional sign (+/-). Will default to None which will use the local timezone. To set the time based off of UTC use "'+0000'". Note: if being passed through the command line will need to be quoted twice to allow negative offsets.

Returns:

Returns True if successful. Otherwise False.

Return type:

bool

CLI Example:

salt '*' system.set_system_time "'11:20'"
salt.modules.system.shutdown(at_time=None)

Shutdown a running system

at_time

The wait time in minutes before the system will be shutdown.

CLI Example:

salt '*' system.shutdown 5