Fuel Slave nodes: /etc/astute.yaml
Fuel uses the astute.yaml file to pass configuration attributes to Puppet.
The /etc/astute.yaml file is placed on each Fuel Slave node when it is deployed by mcollective and must not be deleted. The Facter extension reads data from this file and uses it to create the $::fuel_settings data structure. This structure contains all variables as a single hash and supports embedding of other rich structures such as nodes hash or arrays.
The astute.yaml file <detailed-description>
libvirt_type: qemu
disable_offload: true
network_scheme:
  roles:
    management: br-mgmt
    private: br-prv
    fw-admin: br-fw-admin
    storage: br-storage
  provider: ovs
  version: "1.0"
  interfaces:
    eth4:
      L2:
        vlan_splinters: "off"
    eth3:
      L2:
        vlan_splinters: "off"
    eth2:
      L2:
        vlan_splinters: "off"
    eth1:
      L2:
        vlan_splinters: "off"
    eth0:
      L2:
        vlan_splinters: "off"
  endpoints:
    br-prv:
      IP: none
    br-mgmt:
      other_nets: []
      IP:
      - 10.108.22.6/24
    br-storage:
      other_nets: []
      IP:
      - 10.108.24.5/24
    br-fw-admin:
      other_nets:
      - 10.108.20.0/24
      IP:
      - 10.108.20.7/24
      default_gateway: true
      gateway: 10.108.20.2
  transformations:
  - action: add-br
    name: br-eth0
  - bridge: br-eth0
    action: add-port
    name: eth0
  - action: add-br
    name: br-eth1
  - bridge: br-eth1
    action: add-port
    name: eth1
  - action: add-br
    name: br-eth2
  - bridge: br-eth2
    action: add-port
    name: eth2
  - action: add-br
    name: br-eth3
  - bridge: br-eth3
    action: add-port
    name: eth3
  - action: add-br
    name: br-eth4
  - bridge: br-eth4
    action: add-port
    name: eth4
  - action: add-br
    name: br-mgmt
  - action: add-br
    name: br-storage
  - action: add-br
    name: br-fw-admin
  - trunks:
    - 0
    action: add-patch
    bridges:
    - br-eth4
    - br-storage
  - trunks:
    - 0
    action: add-patch
    bridges:
    - br-eth2
    - br-mgmt
  - trunks:
    - 0
    action: add-patch
    bridges:
    - br-eth0
    - br-fw-admin
  - action: add-br
    name: br-prv
  - action: add-patch
    bridges:
    - br-eth3
    - br-prv
nova:
  db_password: Ns08DOge
  state_path: /var/lib/nova
  user_password: z8sJBhvw
swift:
user_password: Li9DPL0d
mp:
- point: "1"
  weight: "1"
- point: "2"
  weight: "2"
glance:
  db_password: DgVvco7J
  image_cache_max_size: "5368709120"
  user_password: sRX4ksp6
role: primary-mongo
deployment_mode: ha_compact
neutron_mellanox:
  plugin: disabled
  metadata:
    label: Mellanox Neutron components
    enabled: true
    toggleable: false
    weight: 50
  vf_num: "16"
mongo:
  enabled: false
auth_key: ""
external_ntp:
  ntp_list: 0.pool.ntp.org, 1.pool.ntp.org
  metadata:
    label: Upstream NTP
    weight: 100
zabbix:
  db_password: 7hQFiVYa
  db_root_password: xB33AjUw
  password: zabbix
  metadata:
    label: Zabbix Access
    restrictions:
    - condition: not ('experimental' in version:feature_groups)
      action: hide
    weight: 70
  username: admin
tasks:
- type: puppet
  priority: 100
  parameters:
    puppet_modules: /etc/puppet/modules
    cwd: /
    timeout: 3600
    puppet_manifest: /etc/puppet/manifests/site.pp
  uids:
  - "12"
auto_assign_floating_ip: false
ceilometer:
  db_password: ReBB1hdT
  metering_secret: jzHL7r76
  enabled: true
  user_password: p0JVzpHv
public_vip: 10.108.21.2
public_network_assignment:
  assign_to_all_nodes: false
  metadata:
    label: Public network assignment
    restrictions:
    - condition: cluster:net_provider != 'neutron'
      action: hide
    weight: 50
heat:
  db_password: Vv6vslci
  enabled: true
  rabbit_password: TOYQuiwH
  auth_encryption_key: 3775079699142c1bcd7bd8b814648b01
  user_password: s54JsapR
fuel_version: "6.1"
nsx_plugin:
  nsx_password: ""
  nsx_username: admin
  packages_url: ""
  l3_gw_service_uuid: ""
  transport_zone_uuid: ""
  connector_type: stt
  metadata:
    label: VMware NSX
    enabled: false
    restrictions:
    - condition: cluster:net_provider != 'neutron' or networking_parameters:net_l23_provider != 'nsx'
      action: hide
    weight: 20
  replication_mode: true
  nsx_controllers: ""
nodes:
- role: primary-controller
  internal_netmask: 255.255.255.0
  storage_netmask: 255.255.255.0
  internal_address: 10.108.22.3
  uid: "9"
  swift_zone: "9"
  public_netmask: 255.255.255.0
  public_address: 10.108.21.3
  name: node-9
  storage_address: 10.108.24.2
  fqdn: node-9.test.domain.local
- role: controller
  internal_netmask: 255.255.255.0
  storage_netmask: 255.255.255.0
  internal_address: 10.108.22.4
  uid: "10"
  swift_zone: "10"
  public_netmask: 255.255.255.0
  public_address: 10.108.21.4
  name: node-10
  storage_address: 10.108.24.3
  fqdn: node-10.test.domain.local
- role: controller
  internal_netmask: 255.255.255.0
  storage_netmask: 255.255.255.0
  internal_address: 10.108.22.5
  uid: "11"
  swift_zone: "11"
  public_netmask: 255.255.255.0
  public_address: 10.108.21.5
  name: node-11
  storage_address: 10.108.24.4
  fqdn: node-11.test.domain.local
Each OpenStack environment that uses Ceilometer and MongoDB must have a definition for each MongoDB node in the astute.yaml file. One node is designated as the primary-mongo node and all other nodes have mongo specified as a role. Ideally, you should have one MongoDB node for each controller node in an OpenStack environment.
You can use the Fuel web UI to deploy as many MongoDB nodes as required when you initially create your OpenStack environment. You must edit this file and use command line to add MongoDB nodes to the deployed OpenStack environment.
The configuration for the primary MongoDB node is:
- role: primary-mongo
  internal_netmask: 255.255.255.0
  storage_netmask: 255.255.255.0
  internal_address: 10.108.22.6
  uid: "12"
  swift_zone: "12"
  name: node-12
  storage_address: 10.108.24.5
  fqdn: node-12.test.domain.local
The fields are:
| internal_netmask: | |
|---|---|
| Netmask used for the Internal. | |
| storage_netmask: | |
| Netmask used for the Storage logical network. | |
| internal_address: | |
| uid: | |
| swift_zone: | |
| name: | |
| storage_address: | |
| fqdn: | |
The configuration for each non-primary MongoDB node: has the same fields. The astute.yaml file includes one section like this for each configured MongoDB node:
- role: mongo
  internal_netmask: 255.255.255.0
  storage_netmask: 255.255.255.0
  internal_address: 10.108.22.7
  uid: "13"
  swift_zone: "13"
  name: node-13
  storage_address: 10.108.24.6
  fqdn: node-13.test.domain.local
sahara:
  db_password: 0VDkceJQ
  enabled: false
  user_password: 4zs7JZaY
deployment_id: 9
provision:
  method: cobbler
  metadata:
    label: Provision
    restrictions:
    - condition: not ('experimental' in version:feature_groups)
      action: hide
    weight: 80
  image_data:
    /:
      uri: http://10.108.20.2:8080/targetimages/ubuntu_1204_amd64.img.gz
      format: ext4
      container: gzip
    /boot:
      uri: http://10.108.20.2:8080/targetimages/ubuntu_1204_amd64-boot.img.gz
      format: ext2
      container: gzip
nova_quota: false
uid: "12"
repo_metadata:
  2014.2-6.0: http://10.108.20.2:8080/2014.2-6.0/ubuntu/x86_64 precise main
storage:
  objects_ceph: false
  pg_num: 128
  vc_user: ""
  iser: false
  images_ceph: false
  ephemeral_ceph: false
  vc_datastore: ""
  vc_password: ""
  osd_pool_size: "2"
  volumes_vmdk: false
  metadata:
    label: Storage
    weight: 60
  vc_host: ""
  volumes_lvm: true
  images_vcenter: false
  vc_image_dir: /openstack_glance
  volumes_ceph: false
  vc_datacenter: ""
keystone:
  db_password: rwTdR4Vd
  admin_token: YXauBQbY
priority: 200
cinder:
  db_password: fv85YGzr
  user_password: cIVtXdbp
corosync:
  group: 226.94.1.1
  verified: false
  metadata:
    label: Corosync
    restrictions:
    - condition: "true"
      action: hide
    weight: 50
  port: "12000"
management_vip: 10.108.22.2
test_vm_image:
  img_path: /usr/share/cirros-testvm/cirros-x86_64-disk.img
  img_name: TestVM
  min_ram: 64
  public: "true"
  glance_properties: "--property murano_image_info='{\"title\": \"Murano Demo\", \"type\": \"cirros.demo\"}'"
  os_name: cirros
  disk_format: qcow2
  container_format: bare
quantum: true
cobbler:
  profile: ubuntu_1204_x86_64
status: discover
management_network_range: 10.108.22.0/24
fail_if_error: true
puppet_modules_source: rsync://10.108.20.2:/puppet/2014.2-6.0/modules/
master_ip: 10.108.20.2
puppet_manifests_source: rsync://10.108.20.2:/puppet/2014.2-6.0/manifests/
resume_guests_state_on_host_boot: true
syslog:
  syslog_transport: tcp
  syslog_port: "514"
  metadata:
    label: Syslog
    weight: 50
  syslog_server: ""
debug: false
online: true
metadata:
  label: Common
  weight: 30
access:
  email: admin@localhost
  user: admin
  password: admin
  metadata:
    label: Access
    weight: 10
  tenant: admin
openstack_version_prev:
use_cow_images: true
last_controller: node-11
kernel_params:
  kernel: console=ttyS0,9600 console=tty0 rootdelay=90 nomodeset
  metadata:
    label: Kernel parameters
    weight: 40
mysql:
  wsrep_password: 6JoYdvoz
  root_password: ZtwW8gk8
external_dns:
  dns_list: 8.8.8.8, 8.8.4.4
  metadata:
    label: Upstream DNS
    weight: 90
rabbit:
  password: GGcZVT4f
compute_scheduler_driver: nova.scheduler.filter_scheduler.FilterScheduler
openstack_version: 2014.2-6.0
external_mongo:
  mongo_replset: ""
  mongo_password: ceilometer
  mongo_user: ceilometer
  metadata:
    label: External MongoDB
    restrictions:
    - condition: settings:additional_components.mongo.value == false
      action: hide
    weight: 20
  hosts_ip: ""
  mongo_db_name: ceilometer
murano:
  db_password: 0PVsOHo9
  enabled: false
  rabbit_password: FGjWVooK
  user_password: crpWYkaY
quantum_settings:
  database:
    passwd: yOL94I9n
  L3:
    use_namespaces: true
  L2:
    phys_nets:
      physnet2:
        vlan_range: 1000:1030
        bridge: br-prv
    base_mac: fa:16:3e:00:00:00
    segmentation_type: vlan
  predefined_networks:
    admin_floating_net:
      L2:
        segment_id:
        network_type: local
        router_ext: true
        physnet:
      L3:
        floating: 10.108.21.11:10.108.21.20
        subnet: 10.108.21.0/24
        enable_dhcp: false
        gateway: 10.108.21.1
        nameservers: []
      tenant: admin
      shared: false
    admin_internal_net:
      L2:
        segment_id:
        network_type: vlan
        router_ext: false
        physnet: physnet2
      L3:
        floating:
        subnet: 192.168.111.0/24
        enable_dhcp: true
        gateway: 192.168.111.1
        nameservers:
        - 8.8.4.4
        - 8.8.8.8
      tenant: admin
      shared: false
  keystone:
    admin_password: gqWPu2Vg
  metadata:
    metadata_proxy_shared_secret: qoEcTup3
fqdn: node-12.test.domain.local
storage_network_range: 10.108.24.0/24
vcenter:
  datastore_regex: ""
  host_ip: ""
  vc_user: ""
  vlan_interface: ""
  vc_password: ""
  cluster: ""
  metadata:
    label: vCenter
    restrictions:
    - condition: settings:common.libvirt_type.value != 'vcenter'
      action: hide
    weight: 20
  use_vcenter: true
base_syslog:
  syslog_port: "514"
  syslog_server: 10.108.20.2