# salt.states.ipmi

## Manage IPMI devices over LAN

The following configuration defaults can be defined in the minion, master config or pillar:

    ipmi.config:
        api_host: 127.0.0.1
        api_user: admin
        api_pass: apassword
        api_port: 623
        api_kg: None

Every call can override the config defaults:

    ensure myipmi system is set to network boot:
        ipmi.boot_device:
            - name: network
            - api_host: myipmi.hostname.com
            - api_user: root
            - api_pass: apassword
            - api_kg: None

    ensure myipmi system is powered on:
        ipmi.power:
            - name: boot
            - api_host: myipmi.hostname.com
            - api_user: root
            - api_pass: apassword

salt.states.ipmi.boot_device(name='default', **kwargs)

  Request power state change

  name = `default`

    - network -- Request network boot

    - hd -- Boot from hard drive

    - safe -- Boot from hard drive, requesting 'safe mode'

    - optical -- boot from CD/DVD/BD drive

    - setup -- Boot into setup utility

    - default -- remove any IPMI directed boot device request

  kwargs

    - api_host=localhost

    - api_user=admin

    - api_pass=

    - api_port=623

    - api_kg=None

salt.states.ipmi.power(name='power_on', wait=300, **kwargs)

  Request power state change

  name
    Ensure power state one of:

      - power_on -- system turn on

      - power_off -- system turn off (without waiting for OS)

      - shutdown -- request OS proper shutdown

      - reset -- reset (without waiting for OS)

      - boot -- If system is off, then 'on', else 'reset'

  wait

    wait X seconds for the job to complete before forcing. (defaults to 300 seconds)

  kwargs

    - api_host=localhost

    - api_user=admin

    - api_pass=

    - api_port=623

    - api_kg=None

salt.states.ipmi.user_absent(name, channel=14, **kwargs)

  Remove user Delete all user (uid) records having the matching name.

  name

    string name of user to delete

  channel

    channel to remove user access from defaults to 14 for auto.

  kwargs

    - api_host=localhost

    - api_user=admin

    - api_pass=

    - api_port=623

    - api_kg=None

salt.states.ipmi.user_present(name, uid, password, channel=14, callback=False, link_auth=True, ipmi_msg=True, privilege_level='administrator', **kwargs)

  Ensure IPMI user and user privileges.

  name

    name of user (limit 16 bytes)

  uid

    user id number (1 to 7)

  password

    user password (limit 16 bytes)

  channel

    ipmi channel defaults to 14 for auto

  callback

    User Restricted to Callback

    False = User Privilege Limit is determined by the User Privilege Limit

      parameter privilege_level, for both callback and non-callback connections.

    True = User Privilege Limit is determined by the privilege_level

      parameter for callback connections, but is restricted to Callback level for non-callback connections. Thus, a user can only initiate a Callback when they 'call in' to the BMC, but once the callback connection has been made, the user could potentially establish a session as an Operator.

  link_auth

    User Link authentication True/False user name and password information will be used for link authentication, e.g. PPP CHAP) for the given channel. Link authentication itself is a global setting for the channel and is enabled/disabled via the serial/modem configuration parameters.

  ipmi_msg

    User IPMI Messaging True/False user name and password information will be used for IPMI Messaging. In this case, 'IPMI Messaging' refers to the ability to execute generic IPMI commands that are not associated with a particular payload type. For example, if IPMI Messaging is disabled for a user, but that user is enabled for activating the SOL payload type, then IPMI commands associated with SOL and session management, such as Get SOL Configuration Parameters and Close Session are available, but generic IPMI commands such as Get SEL Time are unavailable.) ipmi_msg

  privilege_level

    - callback

    - user

    - operator

    - administrator

    - proprietary

    - no_access

  kwargs

    - api_host=localhost

    - api_user=admin

    - api_pass=

    - api_port=623

    - api_kg=None