Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash -x
- yum install -y openstack-designate-api openstack-designate-central openstack-designate-sink openstack-designate-pool-manager openstack-designate-mdns openstack-designate-common python-designate python-designateclient openstack-designate-agent openstack-designate-worker openstack-utils bind bind-utils
- source ~/keystonerc_admin
- ZONE_NAME=interna.rf01.co
- INTERNAL_NET_NAME=interna
- INSTANCES_PROJECT_NAME=admin
- SERVICES_PROJECT_NAME=services
- DESIGNATE_PASSWORD=Corinthians
- LOCAL_SERVER_IP=$(grep -m1 `hostname` /etc/hosts | awk '{print $1}')
- SERVICES_TENANT_ID=`openstack project show $SERVICES_PROJECT_NAME -f value -c id`
- INSTANCES_TENANT_ID=`openstack project show $INSTANCES_PROJECT_NAME -f value -c id`
- DEFAULT_POOL_ID=794ccc2c-d751-44fe-b57f-8894c9f5c842
- DEFAULT_NAMESERVER_ID=$(uuidgen)
- DEFAULT_TARGET_ID=$(uuidgen)
- FLOAT_NET_ID=`openstack network show $INTERNAL_NET_NAME -f value -c id`
- mysql -u root << EOF
- CREATE DATABASE designate;
- GRANT ALL ON designate.* TO 'designate'@'%' IDENTIFIED BY '$DESIGNATE_PASSWORD';
- GRANT ALL ON designate.* TO 'designate'@'localhost' IDENTIFIED BY '$DESIGNATE_PASSWORD';
- CREATE DATABASE designate_pool_manager;
- GRANT ALL ON designate_pool_manager.* TO 'designate'@'%' IDENTIFIED BY '$DESIGNATE_PASSWORD';
- GRANT ALL ON designate_pool_manager.* TO 'designate'@'localhost' IDENTIFIED BY '$DESIGNATE_PASSWORD';
- FLUSH PRIVILEGES;
- quit
- EOF
- openstack user create designate --password $DESIGNATE_PASSWORD --email designate@localhost
- openstack role add --project $SERVICES_TENANT_ID --user designate admin
- openstack service create dns --name designate --description "Designate DNS Service"
- openstack endpoint create --region RegionOne --publicurl http://$LOCAL_SERVER_IP:9001 --internalurl http://$LOCAL_SERVER_IP:9001 --adminurl http://$LOCAL_SERVER_IP:9001 designate
- crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 extension_drivers port_security,dns
- crudini --set /etc/neutron/neutron.conf DEFAULT dns_domain $ZONE_NAME.
- crudini --set /etc/neutron/neutron.conf DEFAULT external_dns_driver designate
- crudini --set /etc/neutron/neutron.conf designate url http://$LOCAL_SERVER_IP:9001/v2
- crudini --set /etc/neutron/neutron.conf designate admin_auth_url http://$LOCAL_SERVER_IP:35357/v2.0
- crudini --set /etc/neutron/neutron.conf designate admin_username designate
- crudini --set /etc/neutron/neutron.conf designate admin_password $DESIGNATE_PASSWORD
- crudini --set /etc/neutron/neutron.conf designate admin_tenant_name $SERVICES_PROJECT_NAME
- crudini --set /etc/neutron/neutron.conf designate allow_reverse_dns_lookup True
- crudini --set /etc/neutron/neutron.conf designate ipv4_ptr_zone_prefix_size 24
- crudini --set /etc/neutron/neutron.conf designate ipv6_ptr_zone_prefix_size 116
- crudini --set /etc/neutron/neutron.conf designate insecure true
- crudini --set /etc/designate/designate.conf keystone_authtoken auth_uri http://$LOCAL_SERVER_IP:5000/v2.0
- crudini --set /etc/designate/designate.conf keystone_authtoken identity_uri http://$LOCAL_SERVER_IP:35357/
- crudini --set /etc/designate/designate.conf keystone_authtoken admin_tenant_name $SERVICES_PROJECT_NAME
- crudini --set /etc/designate/designate.conf keystone_authtoken project_name $SERVICES_PROJECT_NAME
- crudini --set /etc/designate/designate.conf keystone_authtoken admin_user designate
- crudini --set /etc/designate/designate.conf keystone_authtoken admin_password $DESIGNATE_PASSWORD
- crudini --set /etc/designate/designate.conf service:api enabled_extensions_v1 "diagnostics, quotas, reports, sync, touch"
- crudini --set /etc/designate/designate.conf service:api enabled_extensions_v2 "quotas, reports"
- crudini --set /etc/designate/designate.conf service:central managed_resource_tenant_id $INSTANCES_TENANT_ID
- crudini --set /etc/designate/designate.conf storage:sqlalchemy connection mysql://designate:$DESIGNATE_PASSWORD@$LOCAL_SERVER_IP/designate
- crudini --set /etc/designate/designate.conf pool_manager_cache:sqlalchemy connection mysql://designate:$DESIGNATE_PASSWORD@$LOCAL_SERVER_IP/designate_pool_manager
- crudini --set /etc/designate/designate.conf pool:$DEFAULT_POOL_ID nameservers $DEFAULT_NAMESERVER_ID
- crudini --set /etc/designate/designate.conf pool:$DEFAULT_POOL_ID targets $DEFAULT_TARGET_ID
- crudini --set /etc/designate/designate.conf pool_nameserver:$DEFAULT_NAMESERVER_ID port 53
- crudini --set /etc/designate/designate.conf pool_nameserver:$DEFAULT_NAMESERVER_ID host $LOCAL_SERVER_IP
- crudini --set /etc/designate/designate.conf service:sink enabled_notification_handlers "nova_fixed, neutron_floatingip"
- crudini --set /etc/designate/designate.conf pool_target:$DEFAULT_TARGET_ID type bind9
- crudini --set /etc/designate/designate.conf pool_target:$DEFAULT_TARGET_ID masters $LOCAL_SERVER_IP:5354
- crudini --set /etc/designate/designate.conf pool_target:$DEFAULT_TARGET_ID options "host: $LOCAL_SERVER_IP, port: 53, rndc_host: 127.0.0.1, rndc_port: 953, rndc_config_file: /etc/rndc.conf, rndc_key_file: /etc/rndc.key"
- designate-manage database sync
- designate-manage pool-manager-cache sync
- sed -i -e "s/listen-on port.*/listen-on port 53 { any; };/" /etc/named.conf
- rndc-confgen -a
- sed -i '/^options.*/i \
- include "/etc/rndc.key"; \
- controls { \
- inet 127.0.0.1 allow { localhost; } keys { "rndc-key"; }; \
- };' /etc/named.conf
- sed -i '/allow-query.*/d' /etc/named.conf
- sed -i '/recursion.*/d' /etc/named.conf
- sed -i '/^options.*/a \
- allow-new-zones yes; \
- allow-query { any; }; \
- recursion no;' /etc/named.conf
- cat << EOF > /etc/rndc.conf
- include "/etc/rndc.key";
- options {
- default-key "rndc-key";
- default-server 127.0.0.1;
- default-port 953;
- };
- EOF
- chmod 644 /etc/rndc*
- chmod g+w /var/named
- systemctl enable named
- systemctl start named
- designate-central & DESIG_CENTRALPID=$!
- sleep 3
- designate-manage pool export_from_config --file /dev/shm/output.yml
- sed -i '/794ccc2c-d751-44fe-b57f-8894c9f5c842/a\ \ name: default' /dev/shm/output.yml
- designate-manage pool update --file /dev/shm/output.yml --delete True
- kill -SIGQUIT $DESIG_CENTRALPID
- sleep 3
- for i in central api mdns pool-manager sink ; do
- systemctl enable designate-$i
- systemctl start designate-$i
- done
- sleep 5
- designate server-create --name $(hostname).
- ZONE_ID=`openstack zone create --email admin@$ZONE_NAME $ZONE_NAME. -f value -c id`
- crudini --set /etc/designate/designate.conf handler:nova_fixed domain_id $ZONE_ID
- crudini --set /etc/designate/designate.conf handler:neutron_floatingip domain_id $ZONE_ID
- for i in central api mdns pool-manager sink ; do
- systemctl restart designate-$i
- done
- openstack-service restart neutron
- openstack-service restart nova
- neutron net-update $FLOAT_NET_ID --dns_domain $ZONE_NAME.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement