Update to use oslo.messaging service for RPC and Notify
This introduces oslo.messaging variables that define the RPC and Notify transports for the OpenStack services. These parameters replace the rabbitmq values and are used to generate the messaging transport_url for the service. This patch: * Add oslo.messaging variables for RPC and Notify to defaults * Update transport_url generation * Add oslo.messaging to tests inventory and update tests * Install extra packages for optional drivers Change-Id: I0b2138ca9eb49387948f2ca87800cf966a9414a8
This commit is contained in:
parent
12c92738c4
commit
4df8a013fe
@ -120,19 +120,24 @@ zun_rpc_thread_pool_size: 64
|
||||
zun_rpc_conn_pool_size: 30
|
||||
zun_rpc_response_timeout: 60
|
||||
|
||||
zun_rabbitmq_servers: 127.0.0.1
|
||||
zun_rabbitmq_port: 5672
|
||||
zun_rabbitmq_userid: zun
|
||||
zun_rabbitmq_vhost: /zun
|
||||
zun_rabbitmq_use_ssl: False
|
||||
## Oslo Messaging info
|
||||
|
||||
## Configuration for notifications communication, i.e. [oslo_messaging_notifications]
|
||||
zun_rabbitmq_telemetry_userid: "{{ zun_rabbitmq_userid }}"
|
||||
zun_rabbitmq_telemetry_password: "{{ zun_rabbitmq_password }}"
|
||||
zun_rabbitmq_telemetry_vhost: "{{ zun_rabbitmq_vhost }}"
|
||||
zun_rabbitmq_telemetry_port: "{{ zun_rabbitmq_port }}"
|
||||
zun_rabbitmq_telemetry_servers: "{{ zun_rabbitmq_servers }}"
|
||||
zun_rabbitmq_telemetry_use_ssl: "{{ zun_rabbitmq_use_ssl }}"
|
||||
# RPC
|
||||
zun_oslomsg_rpc_transport: rabbit
|
||||
zun_oslomsg_rpc_servers: 127.0.0.1
|
||||
zun_oslomsg_rpc_port: 5672
|
||||
zun_oslomsg_rpc_use_ssl: False
|
||||
zun_oslomsg_rpc_userid: zun
|
||||
zun_oslomsg_rpc_vhost: /zun
|
||||
|
||||
# Notify
|
||||
zun_oslomsg_notify_transport: rabbit
|
||||
zun_oslomsg_notify_servers: 127.0.0.1
|
||||
zun_oslomsg_notify_port: 5672
|
||||
zun_oslomsg_notify_use_ssl: False
|
||||
zun_oslomsg_notify_userid: "{{ zun_oslomsg_rpc_userid }}"
|
||||
zun_oslomsg_notify_password: "{{ zun_oslomsg_rpc_password }}"
|
||||
zun_oslomsg_notify_vhost: "{{ zun_oslomsg_rpc_vhost }}"
|
||||
|
||||
# If this is not set, then the playbook will try to guess it.
|
||||
#zun_virt_type: kvm
|
||||
@ -238,6 +243,13 @@ zun_pip_packages:
|
||||
- pymysql
|
||||
- zun
|
||||
|
||||
## (Qdrouterd) integration
|
||||
# TODO(ansmith): Change structure when more backends will be supported
|
||||
zun_oslomsg_amqp1_enabled: "{{ zun_oslomsg_rpc_transport == 'amqp' }}"
|
||||
|
||||
zun_optional_oslomsg_amqp1_pip_packages:
|
||||
- oslo.messaging[amqp1]
|
||||
|
||||
## Default service options used within all systemd unit files.
|
||||
zun_service_defaults: {}
|
||||
|
||||
|
@ -13,20 +13,21 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# TODO(ansmith): change to common messaging setup
|
||||
- name: Ensure Rabbitmq vhost
|
||||
rabbitmq_vhost:
|
||||
name: "{{ zun_rabbitmq_vhost }}"
|
||||
name: "{{ zun_oslomsg_rpc_vhost }}"
|
||||
state: "present"
|
||||
delegate_to: "{{ groups['rabbitmq_all'][0] }}"
|
||||
delegate_to: "{{ groups['oslomsg_rpc_all'][0] }}"
|
||||
|
||||
- name: Ensure rabbitmq user
|
||||
rabbitmq_user:
|
||||
user: "{{ zun_rabbitmq_userid }}"
|
||||
password: "{{ zun_rabbitmq_password }}"
|
||||
vhost: "{{ zun_rabbitmq_vhost }}"
|
||||
user: "{{ zun_oslomsg_rpc_userid }}"
|
||||
password: "{{ zun_oslomsg_rpc_password }}"
|
||||
vhost: "{{ zun_oslomsg_rpc_vhost }}"
|
||||
configure_priv: ".*"
|
||||
read_priv: ".*"
|
||||
write_priv: ".*"
|
||||
state: "present"
|
||||
delegate_to: "{{ groups['rabbitmq_all'][0] }}"
|
||||
delegate_to: "{{ groups['oslomsg_rpc_all'][0] }}"
|
||||
no_log: true
|
||||
|
@ -99,6 +99,23 @@
|
||||
tags:
|
||||
- zun-pip-packages
|
||||
|
||||
- name: Install optional pip packages
|
||||
pip:
|
||||
name: "{{ zun_optional_oslomsg_amqp1_pip_packages }}"
|
||||
state: "{{ zun_pip_package_state }}"
|
||||
virtualenv: "{{ zun_bin | dirname }}"
|
||||
virtualenv_site_packages: "no"
|
||||
when: zun_oslomsg_amqp1_enabled
|
||||
register: install_optional_packages
|
||||
until: install_optional_packages is success
|
||||
retries: 5
|
||||
delay: 2
|
||||
notify:
|
||||
- Manage LB
|
||||
- Restart zun services
|
||||
tags:
|
||||
- zun-pip-packages
|
||||
|
||||
- name: Remove python from path first (CentOS, openSUSE)
|
||||
file:
|
||||
path: "{{ zun_bin | dirname }}/bin/python2.7"
|
||||
|
@ -24,21 +24,21 @@
|
||||
- "zun_api"
|
||||
- "zun_compute"
|
||||
|
||||
- name: Check for rabbitmq_all group
|
||||
- name: Check for oslomsg_rpc_all group
|
||||
fail:
|
||||
msg: >-
|
||||
The group `rabbitmq_all` is undefined. Before moving forward
|
||||
The group `oslomsg_rpc_all` is undefined. Before moving forward
|
||||
set this group within inventory with at least one host.
|
||||
when:
|
||||
- (groups['rabbitmq_all'] | length) < 1
|
||||
- (groups['oslomsg_rpc_all'] | length) < 1
|
||||
|
||||
- name: Check for rabbitmq password
|
||||
- name: Check for oslomsg_rpc_password
|
||||
fail:
|
||||
msg: >-
|
||||
The variable `zun_rabbitmq_password` is undefined. Before moving forward
|
||||
The variable `zun_oslomsg_rpc_password` is undefined. Before moving forward
|
||||
set this variable on the CLI or in a variable file.
|
||||
when:
|
||||
- zun_rabbitmq_password is undefined
|
||||
- zun_oslomsg_rpc_password is undefined
|
||||
|
||||
- name: Check for galera_all group
|
||||
fail:
|
||||
|
@ -290,7 +290,7 @@ rpc_conn_pool_size = {{ zun_rpc_conn_pool_size }}
|
||||
# oslo_messaging.TransportURL at
|
||||
# https://docs.openstack.org/oslo.messaging/latest/reference/transport.html
|
||||
# (string value)
|
||||
transport_url = rabbit://{% for host in zun_rabbitmq_servers.split(',') %}{{ zun_rabbitmq_userid }}:{{ zun_rabbitmq_password }}@{{ host }}:{{ zun_rabbitmq_port }}{% if not loop.last %},{% else %}/{{ zun_rabbitmq_vhost }}{% endif %}{% endfor %}
|
||||
transport_url = {{ zun_oslomsg_rpc_transport }}://{% for host in zun_oslomsg_rpc_servers.split(',') %}{{ zun_oslomsg_rpc_userid }}:{{ zun_oslomsg_rpc_password }}@{{ host }}:{{ zun_oslomsg_rpc_port }}{% if not loop.last %},{% else %}/{{ zun_oslomsg_rpc_vhost }}{% if (zun_oslomsg_rpc_use_ssl | lower) | bool %}?ssl=1{% else %}?ssl=0{% endif %}{% endif %}{% endfor %}
|
||||
|
||||
# DEPRECATED: The messaging driver to use, defaults to rabbit. Other drivers
|
||||
# include amqp and zmq. (string value)
|
||||
@ -1603,7 +1603,7 @@ driver = messagingv2
|
||||
# we fall back to the same configuration used for RPC. (string value)
|
||||
# Deprecated group/name - [DEFAULT]/notification_transport_url
|
||||
#transport_url = <None>
|
||||
transport_url = rabbit://{% for host in zun_rabbitmq_telemetry_servers.split(',') %}{{ zun_rabbitmq_telemetry_userid }}:{{ zun_rabbitmq_telemetry_password }}@{{ host }}:{{ zun_rabbitmq_telemetry_port }}{% if not loop.last %},{% else %}/{{ zun_rabbitmq_telemetry_vhost }}{% endif %}{% endfor %}
|
||||
transport_url = {{ zun_oslomsg_notify_transport }}://{% for host in zun_oslomsg_notify_servers.split(',') %}{{ zun_oslomsg_notify_userid }}:{{ zun_oslomsg_notify_password }}@{{ host }}:{{ zun_oslomsg_notify_port }}{% if not loop.last %},{% else %}/{{ zun_oslomsg_notify_vhost }}{% if (zun_oslomsg_notify_use_ssl | lower) | bool %}?ssl=1{% else %}?ssl=0{% endif %}{% endif %}{% endfor %}
|
||||
|
||||
# AMQP topic used for OpenStack notifications. (list value)
|
||||
# Deprecated group/name - [rpc_notifier2]/topics
|
||||
@ -1643,7 +1643,7 @@ topics = {{ notification_topics | join(',') }}
|
||||
# Connect over SSL. (boolean value)
|
||||
# Deprecated group/name - [oslo_messaging_rabbit]/rabbit_use_ssl
|
||||
#ssl = false
|
||||
ssl = {{ zun_rabbitmq_use_ssl }}
|
||||
ssl = {{ zun_oslomsg_notify_use_ssl | bool }}
|
||||
|
||||
# SSL version to use (valid only if SSL enabled). Valid values are TLSv1 and
|
||||
# SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be available on some
|
||||
|
@ -7,6 +7,12 @@ openstack1
|
||||
infra1
|
||||
openstack1
|
||||
|
||||
[oslomsg_rpc_all]
|
||||
infra1
|
||||
|
||||
[oslomsg_notify_all]
|
||||
infra1
|
||||
|
||||
[rabbitmq_all]
|
||||
infra1
|
||||
|
||||
|
@ -18,12 +18,14 @@
|
||||
remote_user: root
|
||||
roles:
|
||||
- role: "os_zun"
|
||||
zun_rabbitmq_password: secrete
|
||||
zun_oslomsg_rpc_password: secrete
|
||||
zun_oslomsg_notify_password: "{{ zun_oslomsg_rpc_password }}"
|
||||
zun_galera_password: secrete
|
||||
zun_service_password: secrete
|
||||
zun_kuryr_service_password: secrete
|
||||
zun_developer_mode: true
|
||||
zun_rabbitmq_servers: "{{ hostvars[groups['rabbitmq_all'][0]]['ansible_host'] }}"
|
||||
zun_oslomsg_rpc_servers: "{{ hostvars[groups['oslomsg_rpc_all'][0]]['ansible_host'] }}"
|
||||
zun_oslomsg_notify_servers: "{{ hostvars[groups['oslomsg_notify_all'][0]]['ansible_host'] }}"
|
||||
zun_service_publicuri: "http://{{ hostvars[groups['keystone_all'][0]]['ansible_host'] }}:9517"
|
||||
zun_service_adminuri: "http://{{ hostvars[groups['keystone_all'][0]]['ansible_host'] }}:9517"
|
||||
zun_service_internaluri: "http://{{ hostvars[groups['keystone_all'][0]]['ansible_host'] }}:9517"
|
||||
|
Loading…
x
Reference in New Issue
Block a user