summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancisco Redondo Marchena <francisco.marchena@codethink.co.uk>2015-04-22 16:39:13 +0000
committerBaserock Gerrit <gerrit@baserock.org>2015-04-27 14:47:46 +0000
commit717aef60fccc3c6932f21adf3d9852e710817800 (patch)
treef8a0cb8fc5118a991028b07777f511f6f1330355
parenteb2c33af1b56b322524d058dd6f560cb21d98a0d (diff)
downloaddefinitions-717aef60fccc3c6932f21adf3d9852e710817800.tar.gz
ceilometer: Configure ceilometer for multinode deployment
Change-Id: I065dcd8926775c5469830af25c3fc6a49d89e432
-rw-r--r--clusters/openstack-one-node.morph3
-rw-r--r--clusters/openstack-three-node-installer.morph19
-rw-r--r--clusters/openstack-two-node-installer.morph16
-rw-r--r--openstack-ceilometer.configure50
-rw-r--r--openstack/manifest6
-rw-r--r--openstack/usr/lib/systemd/system/openstack-ceilometer-alarm-evaluator.service2
-rw-r--r--openstack/usr/lib/systemd/system/openstack-ceilometer-alarm-notifier.service2
-rw-r--r--openstack/usr/lib/systemd/system/openstack-ceilometer-api.service2
-rw-r--r--openstack/usr/lib/systemd/system/openstack-ceilometer-collector.service2
-rw-r--r--openstack/usr/lib/systemd/system/openstack-ceilometer-compute.service2
-rw-r--r--openstack/usr/lib/systemd/system/openstack-ceilometer-config-setup.service11
-rw-r--r--openstack/usr/lib/systemd/system/openstack-ceilometer-db-setup.service12
-rw-r--r--openstack/usr/lib/systemd/system/openstack-ceilometer-setup.service11
-rw-r--r--openstack/usr/share/openstack/ceilometer-config.yml36
-rw-r--r--openstack/usr/share/openstack/ceilometer-db.yml (renamed from openstack/usr/share/openstack/ceilometer.yml)45
15 files changed, 149 insertions, 70 deletions
diff --git a/clusters/openstack-one-node.morph b/clusters/openstack-one-node.morph
index d57b1bc6..be229084 100644
--- a/clusters/openstack-one-node.morph
+++ b/clusters/openstack-one-node.morph
@@ -30,7 +30,8 @@ description: |
- NOVA_VIRT_TYPE can be either 'kvm' or 'qemu', depending on where the
system is being deployed to.
- We recommend changing all the PASSWORDs variables, also the
- KEYSTONE_TEMPORARY_ADMIN_TOKEN and METADATA_PROXY_SHARED_SECRET.
+ KEYSTONE_TEMPORARY_ADMIN_TOKEN, METADATA_PROXY_SHARED_SECRET and
+ METERING_SECRET
- Setting NOVA_BAREMETAL_SCHEDULING with an YAML truth value will configure
Nova to schedule baremetal machines through the Ironic driver, instead of
sheduling virtual machines.
diff --git a/clusters/openstack-three-node-installer.morph b/clusters/openstack-three-node-installer.morph
index 144033cb..91dfd9b1 100644
--- a/clusters/openstack-three-node-installer.morph
+++ b/clusters/openstack-three-node-installer.morph
@@ -21,7 +21,7 @@ description: |
Substitute the values of HOSTNAME, NETWORK_CONFIG, EXTERNAL_INTERFACE,
MANAGEMENT_IP_ADDRESS, CONTROLLER_HOST_ADDRESS, RABBITMQ_HOST and HOSTS_* to
- match your hardware ane networking configuration.
+ match your hardware and networking configuration.
Requirements to be able to run and test the system:
@@ -49,7 +49,8 @@ description: |
- NOVA_VIRT_TYPE can be either 'kvm' or 'qemu', depending on where the
system is being deployed to.
- We recommend changing all the PASSWORDs variables, also the
- KEYSTONE_TEMPORARY_ADMIN_TOKEN and METADATA_PROXY_SHARED_SECRET.
+ KEYSTONE_TEMPORARY_ADMIN_TOKEN, METADATA_PROXY_SHARED_SECRET and
+ METERING_SECRET.
- Setting NOVA_BAREMETAL_SCHEDULING with an YAML truth value will configure
Nova to schedule baremetal machines through the Ironic driver, instead of
sheduling virtual machines.
@@ -132,6 +133,14 @@ systems:
IRONIC_DB_USER: ironicDB
IRONIC_DB_PASSWORD: veryinsecure
+ CEILOMETER_SERVICE_USER: ceilometer
+ CEILOMETER_SERVICE_PASSWORD: veryinsecure
+ CEILOMETER_DB_USER: ceilometerDB
+ CEILOMETER_DB_PASSWORD: veryinsecure
+ CEILOMETER_ENABLE_CONTROLLER: False
+ CEILOMETER_ENABLE_COMPUTE: False
+ METERING_SECRET: insecureceilometersecret
+
CONTROLLER_HOST_ADDRESS: threenode-controller.os-mgmt
MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.1
@@ -170,6 +179,9 @@ systems:
IRONIC_ENABLE_SERVICE: True
+ CEILOMETER_ENABLE_CONTROLLER: True
+ CEILOMETER_ENABLE_COMPUTE: False
+
MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.2
HOSTS_SELF: 10.0.0.2 threenode-controller
EXTERNAL_INTERFACE: enp2s0
@@ -211,6 +223,9 @@ systems:
NEUTRON_ENABLE_CONTROLLER: False
METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret
+ CEILOMETER_ENABLE_CONTROLLER: False
+ CEILOMETER_ENABLE_COMPUTE: True
+
MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.3
HOSTS_SELF: 10.0.0.3 threenode-compute
EXTERNAL_INTERFACE: eno1
diff --git a/clusters/openstack-two-node-installer.morph b/clusters/openstack-two-node-installer.morph
index 0541e784..2a278550 100644
--- a/clusters/openstack-two-node-installer.morph
+++ b/clusters/openstack-two-node-installer.morph
@@ -48,8 +48,9 @@ description: |
- NOVA_VIRT_TYPE can be either 'kvm' or 'qemu', depending on where the
system is being deployed to.
- We recommend changing all the PASSWORDs variables, also the
- KEYSTONE_TEMPORARY_ADMIN_TOKEN and METADATA_PROXY_SHARED_SECRET.
- - Setting NOVA_BAREMETAL_SCHEDULING with an YAML truth value will configure
+ KEYSTONE_TEMPORARY_ADMIN_TOKEN, METADATA_PROXY_SHARED_SECRET and
+ METERING_SECRET.
+ - Setting NOVA_BAREMETAL_SCHEDULING with a YAML truth value will configure
Nova to schedule baremetal machines through the Ironic driver, instead of
sheduling virtual machines.
@@ -131,6 +132,14 @@ systems:
IRONIC_DB_USER: ironicDB
IRONIC_DB_PASSWORD: veryinsecure
+ CEILOMETER_SERVICE_USER: ceilometer
+ CEILOMETER_SERVICE_PASSWORD: veryinsecure
+ CEILOMETER_DB_USER: ceilometerDB
+ CEILOMETER_DB_PASSWORD: veryinsecure
+ CEILOMETER_ENABLE_CONTROLLER: True
+ CEILOMETER_ENABLE_COMPUTE: False
+ METERING_SECRET: insecureceilometersecret
+
CONTROLLER_HOST_ADDRESS: twonode-controller.os-mgmt
MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.1
@@ -178,6 +187,9 @@ systems:
IRONIC_ENABLE_SERVICE: False
+ CEILOMETER_ENABLE_CONTROLLER: False
+ CEILOMETER_ENABLE_COMPUTE: True
+
MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.3
HOSTS_SELF: 10.0.0.3 twonode-compute
EXTERNAL_INTERFACE: eno1
diff --git a/openstack-ceilometer.configure b/openstack-ceilometer.configure
index b8ed7eab..0f51667e 100644
--- a/openstack-ceilometer.configure
+++ b/openstack-ceilometer.configure
@@ -21,8 +21,10 @@ ROOT="$1"
##########################################################################
-ln -s "/usr/lib/systemd/system/openstack-ceilometer-setup.service" \
- "$ROOT/etc/systemd/system/multi-user.target.wants/openstack-ceilometer-setup.service"
+enable(){
+ ln -sf "/usr/lib/systemd/system/$1.service" \
+ "$ROOT/etc/systemd/system/multi-user.target.wants/$1.service"
+}
##########################################################################
# Check variables
@@ -53,6 +55,50 @@ if [ -z "$KEYSTONE_TEMPORARY_ADMIN_TOKEN" -o \
exit 1
fi
+# Check optional variables
+
+unnaceptable(){
+ eval echo Unexpected value \$$1 for $1 >&2
+ exit 1
+}
+
+check_bool(){
+ case "$(eval echo \"\$$1\")" in
+ True|'')
+ eval "$1=true"
+ ;;
+ False)
+ eval "$1=false"
+ ;;
+ *)
+ unnaceptable "$1"
+ ;;
+ esac
+}
+
+check_bool CEILOMETER_ENABLE_CONTROLLER
+check_bool CEILOMETER_ENABLE_COMPUTE
+
+######################################
+# Enable relevant openstack services #
+######################################
+
+if "$CEILOMETER_ENABLE_COMPUTE" || "$CEILOMETER_ENABLE_CONTROLLER"; then
+ enable openstack-ceilometer-config-setup
+fi
+if "$CEILOMETER_ENABLE_COMPUTE"; then
+ enable openstack-ceilometer-compute
+fi
+if "$CEILOMETER_ENABLE_CONTROLLER"; then
+ enable openstack-ceilometer-db-setup
+ enable openstack-ceilometer-api
+ enable openstack-ceilometer-collector
+ enable openstack-ceilometer-notification
+ enable openstack-ceilometer-central
+ enable openstack-ceilometer-alarm-evaluator
+ enable openstack-ceilometer-alarm-notifier
+fi
+
##########################################################################
# Generate configuration file
##########################################################################
diff --git a/openstack/manifest b/openstack/manifest
index f4620f8e..aa4d5430 100644
--- a/openstack/manifest
+++ b/openstack/manifest
@@ -6,7 +6,8 @@ template 0100644 0 0 /etc/tempest/tempest.conf
0040755 0 0 /usr/share/openstack
0100644 0 0 /usr/share/openstack/hosts
0040755 0 0 /usr/share/openstack/ceilometer
-0100644 0 0 /usr/share/openstack/ceilometer.yml
+0100644 0 0 /usr/share/openstack/ceilometer-config.yml
+0100644 0 0 /usr/share/openstack/ceilometer-db.yml
0100644 0 0 /usr/share/openstack/ceilometer/ceilometer.conf
0040755 0 0 /usr/share/openstack/cinder
0100644 0 0 /usr/share/openstack/cinder-config.yml
@@ -166,7 +167,8 @@ template 0100644 0 0 /etc/tempest/tempest.conf
0100644 0 0 /usr/lib/systemd/system/openstack-cinder-scheduler.service
0100644 0 0 /usr/lib/systemd/system/openstack-cinder-volume.service
0100644 0 0 /usr/lib/systemd/system/openstack-cinder-backup.service
-0100644 0 0 /usr/lib/systemd/system/openstack-ceilometer-setup.service
+0100644 0 0 /usr/lib/systemd/system/openstack-ceilometer-config-setup.service
+0100644 0 0 /usr/lib/systemd/system/openstack-ceilometer-db-setup.service
0100644 0 0 /usr/lib/systemd/system/openstack-ceilometer-alarm-evaluator.service
0100644 0 0 /usr/lib/systemd/system/openstack-ceilometer-alarm-notifier.service
0100644 0 0 /usr/lib/systemd/system/openstack-ceilometer-api.service
diff --git a/openstack/usr/lib/systemd/system/openstack-ceilometer-alarm-evaluator.service b/openstack/usr/lib/systemd/system/openstack-ceilometer-alarm-evaluator.service
index a6a2ce56..6f9e2adf 100644
--- a/openstack/usr/lib/systemd/system/openstack-ceilometer-alarm-evaluator.service
+++ b/openstack/usr/lib/systemd/system/openstack-ceilometer-alarm-evaluator.service
@@ -1,6 +1,6 @@
[Unit]
Description=OpenStack ceilometer alarm evaluation service
-After=syslog.target network-online.target
+After=syslog.target network-online.target openstack-ceilometer-config-setup.service
Wants=network-online.target
[Service]
diff --git a/openstack/usr/lib/systemd/system/openstack-ceilometer-alarm-notifier.service b/openstack/usr/lib/systemd/system/openstack-ceilometer-alarm-notifier.service
index 1a4a0b04..6452f737 100644
--- a/openstack/usr/lib/systemd/system/openstack-ceilometer-alarm-notifier.service
+++ b/openstack/usr/lib/systemd/system/openstack-ceilometer-alarm-notifier.service
@@ -1,6 +1,6 @@
[Unit]
Description=OpenStack ceilometer alarm notification service
-After=syslog.target network-online.target
+After=syslog.target network-online.target openstack-ceilometer-config-setup.service
Wants=network-online.target
[Service]
diff --git a/openstack/usr/lib/systemd/system/openstack-ceilometer-api.service b/openstack/usr/lib/systemd/system/openstack-ceilometer-api.service
index 77d8836d..e0a8d00d 100644
--- a/openstack/usr/lib/systemd/system/openstack-ceilometer-api.service
+++ b/openstack/usr/lib/systemd/system/openstack-ceilometer-api.service
@@ -1,6 +1,6 @@
[Unit]
Description=OpenStack ceilometer API service
-After=syslog.target network-online.target
+After=syslog.target network-online.target openstack-ceilometer-config-setup.service
Wants=network-online.target
[Service]
diff --git a/openstack/usr/lib/systemd/system/openstack-ceilometer-collector.service b/openstack/usr/lib/systemd/system/openstack-ceilometer-collector.service
index 98eff608..bb530360 100644
--- a/openstack/usr/lib/systemd/system/openstack-ceilometer-collector.service
+++ b/openstack/usr/lib/systemd/system/openstack-ceilometer-collector.service
@@ -1,6 +1,6 @@
[Unit]
Description=OpenStack ceilometer collection service
-After=syslog.target network-online.target
+After=syslog.target network-online.target openstack-ceilometer-config-setup.service
Wants=network-online.target
[Service]
diff --git a/openstack/usr/lib/systemd/system/openstack-ceilometer-compute.service b/openstack/usr/lib/systemd/system/openstack-ceilometer-compute.service
index b321c576..53e36e18 100644
--- a/openstack/usr/lib/systemd/system/openstack-ceilometer-compute.service
+++ b/openstack/usr/lib/systemd/system/openstack-ceilometer-compute.service
@@ -1,6 +1,6 @@
[Unit]
Description=OpenStack ceilometer compute agent
-After=syslog.target network-online.target openstack-ceilometer-collector.service
+After=syslog.target network-online.target openstack-ceilometer-config-setup.service
Wants=network-online.target
[Service]
diff --git a/openstack/usr/lib/systemd/system/openstack-ceilometer-config-setup.service b/openstack/usr/lib/systemd/system/openstack-ceilometer-config-setup.service
new file mode 100644
index 00000000..c3e809d7
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-ceilometer-config-setup.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Run ceilometer-config-setup Ansible scripts
+ConditionPathExists=/etc/openstack/ceilometer.conf
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/bin/ansible-playbook -v -M /usr/share/ansible/ansible-openstack-modules -i /usr/share/openstack/hosts /usr/share/openstack/ceilometer-config.yml
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-ceilometer-db-setup.service b/openstack/usr/lib/systemd/system/openstack-ceilometer-db-setup.service
new file mode 100644
index 00000000..865b4b2c
--- /dev/null
+++ b/openstack/usr/lib/systemd/system/openstack-ceilometer-db-setup.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Run ceilometer-db-setup Ansible scripts
+ConditionPathExists=/etc/openstack/ceilometer.conf
+After=postgres-server.service openstack-keystone.service openstack-keystone-setup.service openstack-ceilometer-config-setup.service
+Wants=postgres-server.service openstack-keystone.service
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/ansible-playbook -v -M /usr/share/ansible/ansible-openstack-modules -i /usr/share/openstack/hosts /usr/share/openstack/ceilometer-db.yml
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openstack/usr/lib/systemd/system/openstack-ceilometer-setup.service b/openstack/usr/lib/systemd/system/openstack-ceilometer-setup.service
deleted file mode 100644
index 5d61fddb..00000000
--- a/openstack/usr/lib/systemd/system/openstack-ceilometer-setup.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=Run ceilometer-setup Ansible scripts
-After=postgres-server-setup.service openstack-keystone-setup.service
-Wants=postgres-server-setup.service openstack-keystone-setup.service
-
-[Service]
-Type=oneshot
-ExecStart=/usr/bin/ansible-playbook -v -M /usr/share/ansible/ansible-openstack-modules -i /usr/share/openstack/hosts /usr/share/openstack/ceilometer.yml
-
-[Install]
-WantedBy=multi-user.target
diff --git a/openstack/usr/share/openstack/ceilometer-config.yml b/openstack/usr/share/openstack/ceilometer-config.yml
new file mode 100644
index 00000000..9850d84d
--- /dev/null
+++ b/openstack/usr/share/openstack/ceilometer-config.yml
@@ -0,0 +1,36 @@
+---
+- hosts: localhost
+ vars_files:
+ - "/etc/openstack/ceilometer.conf"
+ tasks:
+# Configure ceilometer
+ - name: Create the ceilometer user.
+ user:
+ name: ceilometer
+ comment: Openstack Ceilometer Daemons
+ shell: /sbin/nologin
+ home: /var/lib/ceilometer
+
+ - name: Create the /var folders for ceilometer
+ file:
+ path: "{{ item }}"
+ state: directory
+ owner: ceilometer
+ group: ceilometer
+ with_items:
+ - /var/run/ceilometer
+ - /var/lock/ceilometer
+ - /var/log/ceilometer
+ - /var/lib/ceilometer
+
+ - name: Create /etc/ceilometer directory
+ file:
+ path: /etc/ceilometer
+ state: directory
+
+ - name: Add the configuration needed for ceilometer in /etc/ceilometer using templates
+ template:
+ src: /usr/share/openstack/ceilometer/{{ item }}
+ dest: /etc/ceilometer/{{ item }}
+ with_lines:
+ - cd /usr/share/openstack/ceilometer && find -type f
diff --git a/openstack/usr/share/openstack/ceilometer.yml b/openstack/usr/share/openstack/ceilometer-db.yml
index 33a29a89..717c7d7d 100644
--- a/openstack/usr/share/openstack/ceilometer.yml
+++ b/openstack/usr/share/openstack/ceilometer-db.yml
@@ -3,37 +3,6 @@
vars_files:
- "/etc/openstack/ceilometer.conf"
tasks:
- - name: Create the ceilometer user.
- user:
- name: ceilometer
- comment: Openstack Ceilometer Daemons
- shell: /sbin/nologin
- home: /var/lib/ceilometer
-
- - name: Create the /var folders for ceilometer
- file:
- path: "{{ item }}"
- state: directory
- owner: ceilometer
- group: ceilometer
- with_items:
- - /var/run/ceilometer
- - /var/lock/ceilometer
- - /var/log/ceilometer
- - /var/lib/ceilometer
-
- - name: Create /etc/ceilometer directory
- file:
- path: /etc/ceilometer
- state: directory
-
- - name: Add the configuration needed for ceilometer in /etc/ceilometer using templates
- template:
- src: /usr/share/openstack/ceilometer/{{ item }}
- dest: /etc/ceilometer/{{ item }}
- with_lines:
- - cd /usr/share/openstack/ceilometer && find -type f
-
- name: Create ceilometer service user in service tenant
keystone_user:
user: "{{ CEILOMETER_SERVICE_USER }}"
@@ -79,17 +48,3 @@
command: ceilometer-dbsync
sudo: yes
sudo_user: ceilometer
-
- - name: Enable and start openstack-ceilometer services
- service:
- name: "{{ item }}"
- enabled: yes
- state: started
- with_items:
- - openstack-ceilometer-api.service
- - openstack-ceilometer-alarm-evaluator.service
- - openstack-ceilometer-alarm-notifier.service
- - openstack-ceilometer-central.service
- - openstack-ceilometer-collector.service
- - openstack-ceilometer-compute.service
- - openstack-ceilometer-notification.service