Configuration Management

SaltStack Infrastructures

Configuration for connecting to Salt API endpoint.

monitor:
  salt-manager:
    auth_url: http://{{ salt-api }}:8000
    username: {{ user-name }}
    password: {{ user-password }}

Following figure shows how SaltStack integrates with Architect Inventory and Manager. Please note that you can use Inventory integration independently of the Manager integration.

../_images/manager_salt.png

The metadata schema for SaltStack manager:

query:
  salt_complete_graph:
    name: All Resources
    layout: graph
  salt_minion_service_graph:
    name: Salt Minion Services
    layout: graph
    filter_node_types:
    - salt_master
    - salt_minion
    - salt_service
  salt_minions_tree:
    name: Simple Minions
    layout: hierarchy
    hierarchy_layers:
      0:
        name: Salt Master
        kind:
      1:
        kind: salt_minion
  salt_minion_services_tree:
    name: Minion Services
    layout: hierarchy
    hierarchy_layers:
      0:
        name: Salt master
        kind:
      1:
        kind: salt_minion
      2:
        target: runs_on_minion
        kind: salt_service
  salt_minion_lowstates_tree:
    name: Minion States
    layout: hierarchy
    hierarchy_layers:
      0:
        name: Salt master
        kind:
      1:
        kind: salt_minion
      2:
        target: runs_on_minion
        kind: salt_service
      3:
        target: state_of_service
        kind: salt_lowstate
relation:
  controlled_by_master:
    relation:
      default: master
  applied_on_minion:
    relation:
      default: minion
  runs_on_minion:
    relation:
      default: minion
  applied_lowstate:
    relation:
      default: lowstate
  state_of_service:
    relation:
      default: service
  action_by_user:
    relation:
      default: user
  requires_service:
    relation:
      default: require
default_resource: salt_minion
resource:
  salt_master:
    client: ''
    icon: fa:server
    name: Master
    resource: master
    workflow:
      generate_key:
        name: Generate key

  salt_minion:
    client: ''
    icon: fa:server
    name: Minion
    resource: minion
    workflow:
      run_module:
        name: Run module
    model:
      master:
        type: relationship_to
        model: controlled_by_master
        target: salt_master
  salt_lowstate:
    client: ''
    icon: fa:cube
    name: Lowstate
    resource: lowstate
    model:
      service:
        type: relationship_to
        model: state_of_service
        target: salt_service
  salt_job:
    client: ''
    icon: fa:clock-o
    name: Job
    resource: job
    model:
      user:
        type: relationship_to
        model: action_by_user
        target: salt_user
      minion:
        type: relationship_to
        model: applied_on_minion
        target: salt_minion
      lowstate:
        type: relationship_to
        model: applied_lowstate
        target: salt_lowstate
  salt_service:
    client: ''
    icon: fa:podcast
    name: Service
    resource: service
    model:
      minion:
        type: relationship_to
        model: runs_on_minion
        target: salt_minion
      require:
        type: relationship_to
        model: requires_service
        target: salt_service
  salt_user:
    client: ''
    icon: fa:user
    name: User
    resource: user

Salt Master Integration

You can control salt master infrastructure and get the status of managed hosts and resources. The Salt engine architect relays the state outputs of individual state runs and architect runners and modules provide the capabilities to interface with salt and architect functions. The Salt Master is managed through it’s HTTP API service.

http_architect: &http_architect
  project: newt.work
  host: 127.0.0.1
  port: 8181