From f19e006f84e98bdee061d79e68c316364251dcbc Mon Sep 17 00:00:00 2001 From: Michael Polenchuk Date: Wed, 31 May 2017 16:12:43 +0400 Subject: [mcp] Bring in dpdk scenario support Change-Id: Ifd6d61026a0e98e8faf59c7d218333122d70ffe9 Signed-off-by: Michael Polenchuk --- .../virtual-mcp-ocata-ovs-dpdk/infra/config.yml | 80 ++++++++++++ .../virtual-mcp-ocata-ovs-dpdk/infra/init.yml | 14 +++ .../cluster/virtual-mcp-ocata-ovs-dpdk/init.yml | 22 ++++ .../openstack/compute.yml | 67 ++++++++++ .../openstack/control.yml | 81 +++++++++++++ .../openstack/gateway.yml | 65 ++++++++++ .../virtual-mcp-ocata-ovs-dpdk/openstack/init.yml | 135 +++++++++++++++++++++ .../virtual-mcp-ocata-ovs/openstack/gateway.yml | 2 +- .../cfg01.virtual-mcp-ocata-ovs-dpdk.local.yml | 10 ++ mcp/reclass/scripts/infra.sh | 9 +- mcp/reclass/scripts/salt.sh | 7 +- mcp/reclass/scripts/user-data.sh | 10 -- mcp/reclass/scripts/user-data.template | 10 ++ 13 files changed, 496 insertions(+), 16 deletions(-) create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/infra/config.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/infra/init.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/init.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/compute.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/control.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/gateway.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/init.yml create mode 100644 mcp/reclass/nodes/cfg01.virtual-mcp-ocata-ovs-dpdk.local.yml delete mode 100755 mcp/reclass/scripts/user-data.sh create mode 100644 mcp/reclass/scripts/user-data.template (limited to 'mcp') diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/infra/config.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/infra/config.yml new file mode 100644 index 000000000..331ab6e05 --- /dev/null +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/infra/config.yml @@ -0,0 +1,80 @@ +classes: +- service.git.client +- system.linux.system.single +- system.linux.system.repo.mcp.salt +- system.salt.master.api +- system.salt.master.pkg +- system.reclass.storage.salt +- system.salt.minion.ca.salt_master +- system.salt.minion.cert.proxy +- system.keystone.client.single +- system.keystone.client.service.ceilometer +- system.keystone.client.service.nova21 +- system.keystone.client.service.nova-placement +- system.keystone.client.service.glare +- system.keystone.client.service.cinder3 +- system.mysql.client.single +- system.reclass.storage.system.openstack_control_cluster +- system.reclass.storage.system.openstack_compute_multi +- system.reclass.storage.system.openstack_gateway_single +- cluster.virtual-mcp-ocata-ovs-dpdk +parameters: + _param: + reclass_data_repository: https://gerrit.opnfv.org/gerrit/fuel + reclass_data_revision: master + salt_master_environment_repository: "https://github.com/tcpcloud" + salt_master_environment_revision: master + reclass_config_master: 192.168.10.100 + single_address: 172.16.10.100 + salt_master_host: 127.0.0.1 + salt_master_base_environment: prd + salt_minion_ca_host: ${linux:network:fqdn} + salt_api_password_hash: "$6$sGnRlxGf$al5jMCetLP.vfI/fTl3Z0N7Za1aeiexL487jAtyRABVfT3NlwZxQGVhO7S1N8OwS/34VHYwZQA8lkXwKMN/GS1" + linux: + network: + interface: + ens4: + enabled: true + type: eth + proto: static + address: ${_param:single_address} + netmask: 255.255.255.0 + reclass: + storage: + node: + openstack_control_node01: + classes: + - service.galera.master.cluster + params: + mysql_cluster_role: master + linux_system_codename: xenial + openstack_control_node02: + classes: + - service.galera.slave.cluster + params: + mysql_cluster_role: slave + linux_system_codename: xenial + openstack_control_node03: + classes: + - service.galera.slave.cluster + params: + mysql_cluster_role: slave + linux_system_codename: xenial + openstack_compute_node01: + params: + single_address: 172.16.10.105 + tenant_address: 10.1.0.105 + external_address: 10.16.0.105 + dpdk0_name: ens4 + dpdk0_pci: '"0000:00:04.0"' + openstack_compute_node02: + params: + single_address: 172.16.10.106 + tenant_address: 10.1.0.106 + external_address: 10.16.0.106 + dpdk0_name: ens4 + dpdk0_pci: '"0000:00:04.0"' + openstack_gateway_node01: + params: + tenant_address: 10.1.0.110 + external_address: 10.16.0.110 diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/infra/init.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/infra/init.yml new file mode 100644 index 000000000..9140bd0bc --- /dev/null +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/infra/init.yml @@ -0,0 +1,14 @@ +parameters: + linux: + network: + host: + cfg01: + address: ${_param:infra_config_address} + names: + - cfg01 + - cfg01.${_param:cluster_domain} + cfg: + address: ${_param:infra_config_address} + names: + - cfg + - cfg.${_param:cluster_domain} diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/init.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/init.yml new file mode 100644 index 000000000..d26d4018d --- /dev/null +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/init.yml @@ -0,0 +1,22 @@ +classes: +- system.linux.system.single +- cluster.virtual-mcp-ocata-ovs-dpdk.infra +- cluster.virtual-mcp-ocata-ovs-dpdk.openstack + +parameters: + _param: + cluster_domain: virtual-mcp-ocata-ovs-dpdk.local + cluster_name: virtual-mcp-ocata-ovs-dpdk + # infra service addresses + infra_config_address: 172.16.10.100 + # openstack service addresses + openstack_control_address: 172.16.10.254 + openstack_control_node01_address: 172.16.10.101 + openstack_control_node02_address: 172.16.10.102 + openstack_control_node03_address: 172.16.10.103 + openstack_database_address: ${_param:openstack_control_address} + openstack_message_queue_address: ${_param:openstack_control_address} + openstack_message_queue_node01_address: ${_param:openstack_control_node01_address} + openstack_message_queue_node02_address: ${_param:openstack_control_node02_address} + openstack_message_queue_node03_address: ${_param:openstack_control_node03_address} + openstack_gateway_address: 172.16.10.110 diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/compute.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/compute.yml new file mode 100644 index 000000000..6a70421df --- /dev/null +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/compute.yml @@ -0,0 +1,67 @@ +classes: +- system.linux.system.repo.mcp.openstack +- system.linux.system.repo.mcp.extra +- system.linux.system.repo.saltstack.xenial +- system.nova.compute.cluster +- system.neutron.compute.cluster +- system.ceilometer.agent.cluster +- system.nova.compute.nfv.hugepages +- system.neutron.compute.nfv.dpdk +- cluster.virtual-mcp-ocata-ovs-dpdk +parameters: + _param: + primary_interface: ens4 + tenant_interface: ens5 + external_interface: ens6 + interface_mtu: 9000 + linux_system_codename: xenial + nova: + compute: + vncproxy_url: http://${_param:cluster_vip_address}:6080 + message_queue: + members: + - host: ${_param:openstack_control_node01_address} + - host: ${_param:openstack_control_node02_address} + - host: ${_param:openstack_control_node03_address} + linux: + network: + bridge: openvswitch + interface: + dhcp_int: + enabled: true + name: ens3 + proto: dhcp + type: eth + mtu: ${_param:interface_mtu} + primary_interface: + enabled: true + name: ${_param:primary_interface} + mtu: ${_param:interface_mtu} + proto: manual + type: eth + tenant_interface: + enabled: true + name: ${_param:tenant_interface} + mtu: ${_param:interface_mtu} + proto: manual + type: eth + br-mgmt: + enabled: true + type: bridge + proto: static + address: ${_param:single_address} + netmask: 255.255.255.0 + use_interfaces: + - ${_param:primary_interface} + dpdk0: + name: ${_param:dpdk0_name} + pci: ${_param:dpdk0_pci} + driver: igb_uio + enabled: true + type: dpdk_ovs_port + n_rxq: 2 + br-prv: + enabled: true + type: dpdk_ovs_bridge + address: ${_param:tenant_address} + netmask: 255.255.255.0 diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/control.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/control.yml new file mode 100644 index 000000000..3ec111b0b --- /dev/null +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/control.yml @@ -0,0 +1,81 @@ +classes: +- system.linux.system.lowmem +- system.linux.system.repo.glusterfs +- system.linux.system.repo.mcp.openstack +- system.linux.system.repo.mcp.extra +- system.linux.system.repo.saltstack.xenial +- system.ceilometer.client +- system.memcached.server.single +- system.rabbitmq.server.cluster +- system.rabbitmq.server.vhost.openstack +- system.keystone.server.wsgi +- system.keystone.server.cluster +- system.glusterfs.client.cluster +- system.glusterfs.client.volume.glance +- system.glusterfs.client.volume.keystone +- system.glusterfs.server.volume.glance +- system.glusterfs.server.volume.keystone +- system.glusterfs.server.cluster +- system.glance.control.cluster +- system.nova.control.cluster +- system.neutron.control.openvswitch.cluster +- system.cinder.control.cluster +- system.heat.server.cluster +- system.galera.server.cluster +- system.galera.server.database.aodh +- system.galera.server.database.ceilometer +- system.galera.server.database.cinder +- system.galera.server.database.glance +- system.galera.server.database.grafana +- system.galera.server.database.heat +- system.galera.server.database.keystone +- system.galera.server.database.nova +- system.haproxy.proxy.listen.openstack.nova-placement +- system.ceilometer.server.cluster +- system.aodh.server.cluster +- system.horizon.server.cluster +- cluster.virtual-mcp-ocata-ovs-dpdk +parameters: + _param: + keepalived_vip_interface: ens4 + keepalived_openstack_telemetry_vip_interface: ens4 + linux_system_codename: xenial + linux: + system: + package: + python-msgpack: + version: latest + network: + interface: + ens4: + enabled: true + type: eth + proto: static + address: ${_param:single_address} + netmask: 255.255.255.0 + keepalived: + cluster: + instance: + VIP: + virtual_router_id: 150 + keystone: + server: + admin_email: ${_param:admin_email} + glance: + server: + storage: + engine: file + images: [] + workers: 1 + nova: + controller: + networking: dvr + cpu_allocation: 54 + metadata: + password: ${_param:metadata_password} + bind: + private_address: ${_param:cluster_local_address} + public_address: ${_param:cluster_vip_address} + novncproxy_port: 6080 + vncproxy_url: http://${_param:cluster_vip_address}:6080 + workers: 1 diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/gateway.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/gateway.yml new file mode 100644 index 000000000..e9f09ca0b --- /dev/null +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/gateway.yml @@ -0,0 +1,65 @@ +classes: +- system.linux.system.repo.mcp.openstack +- system.linux.system.repo.mcp.extra +- system.linux.system.repo.saltstack.xenial +- system.neutron.gateway.cluster +- cluster.virtual-mcp-ocata-ovs-dpdk +parameters: + _param: + primary_interface: ens4 + tenant_interface: ens5 + external_interface: ens6 + interface_mtu: 9000 + linux_system_codename: xenial + linux: + network: + bridge: openvswitch + interface: + dhcp_int: + enabled: true + name: ens3 + proto: dhcp + type: eth + mtu: ${_param:interface_mtu} + primary_interface: + enabled: true + name: ${_param:primary_interface} + mtu: ${_param:interface_mtu} + proto: manual + type: eth + tenant_interface: + enabled: true + name: ${_param:tenant_interface} + mtu: ${_param:interface_mtu} + proto: manual + type: eth + br_ctl: + enabled: true + type: ovs_port + bridge: br-floating + proto: static + address: ${_param:single_address} + netmask: 255.255.255.0 + mtu: ${_param:interface_mtu} + use_interfaces: + - ${_param:primary_interface} + br-floating: + enabled: true + type: ovs_bridge + br-prv: + enabled: true + type: ovs_bridge + address: ${_param:tenant_address} + netmask: 255.255.255.0 + floating-to-prv: + enabled: true + type: ovs_port + port_type: patch + bridge: br-floating + peer: prv-to-floating + prv-to-floating: + enabled: true + type: ovs_port + port_type: patch + bridge: br-prv + peer: floating-to-prv diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/init.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/init.yml new file mode 100644 index 000000000..6c846d6cc --- /dev/null +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs-dpdk/openstack/init.yml @@ -0,0 +1,135 @@ +parameters: + _param: + openstack_version: ocata + apt_mk_version: nightly + mcp_repo_version: 1.1 + openstack_region: RegionOne + admin_email: root@localhost + cluster_public_protocol: http + cluster_public_host: 172.16.10.254 + neutron_public_protocol: http + neutron_control_dvr: False + neutron_tenant_network_types: "flat" + neutron_l3_ha: True + neutron_global_physnet_mtu: 1500 + neutron_external_mtu: 1500 + neutron_gateway_dvr: False + neutron_gateway_agent_mode: legacy + neutron_compute_dvr: False + neutron_compute_agent_mode: legacy + neutron_compute_external_access: False + galera_server_cluster_name: openstack_cluster + galera_server_maintenance_password: opnfv_secret + galera_server_admin_password: opnfv_secret + cluster_vip_address: 172.16.10.254 + cluster_local_address: ${_param:single_address} + compute_hugepages_size: 2M + compute_hugepages_count: 1024 + compute_hugepages_mount: /mnt/hugepages_2M + compute_dpdk_driver: uio + compute_ovs_pmd_cpu_mask: "0x6" + compute_ovs_dpdk_socket_mem: "1024" + compute_ovs_dpdk_lcore_mask: "0x400" + compute_ovs_memory_channels: "2" + cluster_node01_hostname: ctl01 + cluster_node01_address: 172.16.10.101 + cluster_node02_hostname: ctl02 + cluster_node02_address: 172.16.10.102 + cluster_node03_hostname: ctl03 + cluster_node03_address: 172.16.10.103 + rabbitmq_secret_key: opnfv_secret + rabbitmq_admin_password: opnfv_secret + rabbitmq_openstack_password: opnfv_secret + rabbitmq_cold_password: opnfv_secret + glance_version: ${_param:openstack_version} + glance_service_host: ${_param:cluster_vip_address} + keystone_version: ${_param:openstack_version} + keystone_service_host: ${_param:cluster_vip_address} + heat_version: ${_param:openstack_version} + heat_service_host: ${_param:cluster_vip_address} + heat_domain_admin_password: opnfv_secret + ceilometer_version: ${_param:openstack_version} + ceilometer_service_host: 172.16.10.108 + cinder_version: ${_param:openstack_version} + cinder_service_host: ${_param:cluster_vip_address} + ceilometer_graphite_publisher_host: 172.16.10.107 + ceilometer_graphite_publisher_port: 2013 + nova_version: ${_param:openstack_version} + nova_service_host: ${_param:cluster_vip_address} + nova_vncproxy_url: http://${_param:cluster_vip_address}:8060 + neutron_version: ${_param:openstack_version} + neutron_service_host: ${_param:cluster_vip_address} + glusterfs_service_host: ${_param:cluster_vip_address} + metadata_password: password + mysql_admin_user: root + mysql_admin_password: opnfv_secret + mysql_cinder_password: opnfv_secret + mysql_ceilometer_password: opnfv_secret + mysql_glance_password: opnfv_secret + mysql_grafana_password: opnfv_secret + mysql_heat_password: opnfv_secret + mysql_keystone_password: opnfv_secret + mysql_neutron_password: opnfv_secret + mysql_nova_password: opnfv_secret + mysql_aodh_password: opnfv_secret + keystone_service_token: opnfv_secret + keystone_admin_password: opnfv_secret + keystone_ceilometer_password: opnfv_secret + keystone_cinder_password: opnfv_secret + keystone_glance_password: opnfv_secret + keystone_heat_password: opnfv_secret + keystone_keystone_password: opnfv_secret + keystone_neutron_password: opnfv_secret + keystone_nova_password: opnfv_secret + ceilometer_secret_key: opnfv_secret + metadata_password: opnfv_secret + horizon_version: ${_param:openstack_version} + horizon_secret_key: opaesee8Que2yahJoh9fo0eefo1Aeyo6ahyei8zeiboh3aeth5loth7ieNa5xi5e + horizon_identity_host: ${_param:cluster_vip_address} + horizon_identity_encryption: none + horizon_identity_version: 3 + mongodb_server_replica_set: ceilometer + mongodb_ceilometer_password: cloudlab + mongodb_admin_password: cloudlab + mongodb_shared_key: eoTh1AwahlahqueingeejooLughah4tei9feing0eeVaephooDi2li1TaeV1ooth + aodh_version: ${_param:openstack_version} + keystone_aodh_password: opnfv_secret + aodh_service_host: 172.16.10.108 + linux: + network: + host: + ctl: + address: ${_param:openstack_control_address} + names: + - ctl + - ctl.${_param:cluster_domain} + ctl01: + address: ${_param:openstack_control_node01_address} + names: + - ctl01 + - ctl01.${_param:cluster_domain} + ctl02: + address: ${_param:openstack_control_node02_address} + names: + - ctl02 + - ctl02.${_param:cluster_domain} + ctl03: + address: ${_param:openstack_control_node03_address} + names: + - ctl03 + - ctl03.${_param:cluster_domain} + gtw01: + address: ${_param:openstack_gateway_address} + names: + - gtw01 + - gtw01.${_param:cluster_domain} + cmp01: + address: 172.16.10.105 + names: + - cmp01 + - cmp01.${_param:cluster_domain} + cmp02: + address: 172.16.10.106 + names: + - cmp02 + - cmp02.${_param:cluster_domain} diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/openstack/gateway.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/openstack/gateway.yml index 8167f96f5..67e5a4371 100644 --- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/openstack/gateway.yml +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-ovs/openstack/gateway.yml @@ -75,4 +75,4 @@ parameters: use_interfaces: - ${_param:external_interface} use_ovs_ports: - - float-to-ex \ No newline at end of file + - float-to-ex diff --git a/mcp/reclass/nodes/cfg01.virtual-mcp-ocata-ovs-dpdk.local.yml b/mcp/reclass/nodes/cfg01.virtual-mcp-ocata-ovs-dpdk.local.yml new file mode 100644 index 000000000..f7a13bbe4 --- /dev/null +++ b/mcp/reclass/nodes/cfg01.virtual-mcp-ocata-ovs-dpdk.local.yml @@ -0,0 +1,10 @@ +classes: +- cluster.virtual-mcp-ocata-ovs-dpdk.infra.config +parameters: + _param: + linux_system_codename: xenial + reclass_data_revision: master + linux: + system: + name: cfg01 + domain: virtual-mcp-ocata-ovs-dpdk.local diff --git a/mcp/reclass/scripts/infra.sh b/mcp/reclass/scripts/infra.sh index b83f21508..c88c061fd 100755 --- a/mcp/reclass/scripts/infra.sh +++ b/mcp/reclass/scripts/infra.sh @@ -1,7 +1,7 @@ #!/bin/bash BASE_IMAGE=https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img -declare -A NODES=( [cfg01]=4096 [ctl01]=6144 [ctl02]=6144 [ctl03]=6144 [gtw01]=2048 [cmp01]=2048 ) +declare -A NODES=( [cfg01]=4096 [ctl01]=8192 [ctl02]=8192 [ctl03]=8192 [gtw01]=2048 [cmp01]=6144 ) # get required packages apt-get install -y mkisofs curl virtinst cpu-checker qemu-kvm @@ -13,6 +13,9 @@ apt-get install -y mkisofs curl virtinst cpu-checker qemu-kvm mkdir -p images wget -P /tmp -nc $BASE_IMAGE +# generate cloud-init user data +envsubst < user-data.template > user-data.sh + for node in "${!NODES[@]}"; do # clean up existing nodes if [ "$(virsh domstate $node 2>/dev/null)" == 'running' ]; then @@ -60,8 +63,8 @@ for node in "${!NODES[@]}"; do sleep $[RANDOM%5+1] done -CONNECTION_ATTEMPTS=20 -SLEEP=15 +CONNECTION_ATTEMPTS=60 +SLEEP=5 # wait until ssh on Salt master is available echo "Attempting to ssh to Salt master ..." diff --git a/mcp/reclass/scripts/salt.sh b/mcp/reclass/scripts/salt.sh index 6c60c5662..b6f844e83 100755 --- a/mcp/reclass/scripts/salt.sh +++ b/mcp/reclass/scripts/salt.sh @@ -7,7 +7,10 @@ ssh $SSH_OPTS ubuntu@$SALT_MASTER bash -s << SALT_INSTALL_END sudo -i - apt-get update + echo -n 'Checking out cloud-init has finished running ...' + while [ ! -f /var/lib/cloud/instance/boot-finished ]; do echo -n '.'; sleep 1; done + echo ' done' + apt-get install -y git curl subversion svn export --force https://github.com/salt-formulas/salt-formulas/trunk/deploy/scripts /srv/salt/scripts @@ -15,6 +18,6 @@ ssh $SSH_OPTS ubuntu@$SALT_MASTER bash -s << SALT_INSTALL_END ln -s /root/fuel/mcp/reclass /srv/salt/reclass cd /srv/salt/scripts - MASTER_HOSTNAME=cfg01.virtual-mcp-ocata-ovs.local ./salt-master-init.sh + MASTER_HOSTNAME=cfg01.${CLUSTER_DOMAIN} ./salt-master-init.sh salt-key -Ay SALT_INSTALL_END diff --git a/mcp/reclass/scripts/user-data.sh b/mcp/reclass/scripts/user-data.sh deleted file mode 100755 index 2b9b6845c..000000000 --- a/mcp/reclass/scripts/user-data.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -wget -O - https://repo.saltstack.com/apt/ubuntu/16.04/amd64/latest/SALTSTACK-GPG-KEY.pub | sudo apt-key add - -echo "deb http://repo.saltstack.com/apt/ubuntu/16.04/amd64/latest xenial main" > /etc/apt/sources.list.d/salt.list -apt update -apt-get install -y salt-minion -rm /etc/salt/minion_id -rm -f /etc/salt/pki/minion/minion_master.pub -echo "id: $(hostname).virtual-mcp-ocata-ovs.local" > /etc/salt/minion -echo "master: 192.168.10.100" >> /etc/salt/minion -service salt-minion restart diff --git a/mcp/reclass/scripts/user-data.template b/mcp/reclass/scripts/user-data.template new file mode 100644 index 000000000..811a58c70 --- /dev/null +++ b/mcp/reclass/scripts/user-data.template @@ -0,0 +1,10 @@ +#!/bin/bash +wget -O - https://repo.saltstack.com/apt/ubuntu/16.04/amd64/latest/SALTSTACK-GPG-KEY.pub | sudo apt-key add - +echo "deb http://repo.saltstack.com/apt/ubuntu/16.04/amd64/latest xenial main" > /etc/apt/sources.list.d/salt.list +apt update +apt-get install -y salt-minion +rm /etc/salt/minion_id +rm -f /etc/salt/pki/minion/minion_master.pub +echo "id: $(hostname).${CLUSTER_DOMAIN}" > /etc/salt/minion +echo "master: ${SALT_MASTER}" >> /etc/salt/minion +service salt-minion restart -- cgit 1.2.3-korg