Adjust swift plays to use unified os-swift role
In https://review.openstack.org/#/c/293536 os-swift-sync was merged into os-swift. The playbooks in openstack-ansible need to be adjusted to set the specific vars so that only the required tasks are run. In order to speed up the gate run, we adjust the os-swift-install task to run the os-swift role once, but have the same end result as before. Change-Id: I3e3891333229be0fb933479837a2fca451eb7474 Depends-On: If01d8a3aa29fc7637aecb92e61929523af08103d
This commit is contained in:
parent
ea2fe1e89b
commit
61d601e890
@ -13,5 +13,166 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
- include: os-swift-setup.yml
|
||||
- include: os-swift-sync.yml
|
||||
- name: Installation and setup of Swift
|
||||
hosts: swift_all:swift_remote_all
|
||||
max_fail_percentage: 20
|
||||
user: root
|
||||
pre_tasks:
|
||||
- name: Use the lxc-openstack aa profile
|
||||
lxc_container:
|
||||
name: "{{ container_name }}"
|
||||
container_config:
|
||||
- "lxc.aa_profile=lxc-openstack"
|
||||
delegate_to: "{{ physical_host }}"
|
||||
when:
|
||||
- inventory_hostname in groups['swift_all']
|
||||
- not is_metal | bool
|
||||
register: container_config
|
||||
tags:
|
||||
- lxc-aa-profile
|
||||
- name: Wait for container ssh
|
||||
wait_for:
|
||||
port: "22"
|
||||
delay: "{{ ssh_delay }}"
|
||||
search_regex: "OpenSSH"
|
||||
host: "{{ ansible_ssh_host }}"
|
||||
delegate_to: "{{ physical_host }}"
|
||||
when:
|
||||
- inventory_hostname in groups['swift_all']
|
||||
- container_config is defined and container_config | changed
|
||||
register: ssh_wait_check
|
||||
until: ssh_wait_check | success
|
||||
retries: 3
|
||||
tags:
|
||||
- ssh-wait
|
||||
- name: Create log dir
|
||||
file:
|
||||
path: "{{ item.path }}"
|
||||
state: directory
|
||||
with_items:
|
||||
- { path: "/openstack/log/{{ inventory_hostname }}-swift" }
|
||||
when:
|
||||
- inventory_hostname in groups['swift_all']
|
||||
- is_metal | bool
|
||||
tags:
|
||||
- swift-logs
|
||||
- swift-log-dirs
|
||||
- name: Create log aggregation links
|
||||
file:
|
||||
src: "{{ item.src }}"
|
||||
dest: "{{ item.dest }}"
|
||||
state: "{{ item.state }}"
|
||||
owner: "{{ item.owner }}"
|
||||
group: "{{ item.group }}"
|
||||
force: "yes"
|
||||
with_items:
|
||||
- src: "/openstack/log/{{ inventory_hostname }}-swift"
|
||||
dest: "/var/log/swift"
|
||||
owner: "syslog"
|
||||
group: "syslog"
|
||||
state: "link"
|
||||
when:
|
||||
- inventory_hostname in groups['swift_all']
|
||||
- is_metal | bool
|
||||
tags:
|
||||
- swift-logs
|
||||
- name: Set swift storage bridge (is_metal)
|
||||
set_fact:
|
||||
storage_bridge: "{{ 'ansible_' + swift.storage_network | replace('-', '_') }}"
|
||||
when:
|
||||
- inventory_hostname in groups['swift_all']
|
||||
- swift.storage_network is defined
|
||||
- is_metal | bool
|
||||
- name: Set swift storage address (is_metal)
|
||||
set_fact:
|
||||
storage_address: "{{ hostvars[inventory_hostname][storage_bridge]['ipv4']['address'] }}"
|
||||
when:
|
||||
- inventory_hostname in groups['swift_all']
|
||||
- swift.storage_network is defined
|
||||
- is_metal | bool
|
||||
- name: Set swift storage address (is_metal no storage network)
|
||||
set_fact:
|
||||
storage_address: "{{ ansible_ssh_host }}"
|
||||
when:
|
||||
- inventory_hostname in groups['swift_all']
|
||||
- swift.storage_network is undefined
|
||||
- is_metal | bool
|
||||
- name: Set swift storage address (container)
|
||||
set_fact:
|
||||
storage_address: "{{ hostvars[inventory_hostname]['container_networks']['storage_address']['address'] }}"
|
||||
when:
|
||||
- inventory_hostname in groups['swift_all']
|
||||
- hostvars[inventory_hostname]['container_networks']['storage_address']['address'] is defined
|
||||
- not is_metal | bool
|
||||
- name: Set swift storage address (container no storage network)
|
||||
set_fact:
|
||||
storage_address: "{{ ansible_ssh_host }}"
|
||||
when:
|
||||
- inventory_hostname in groups['swift_all']
|
||||
- hostvars[inventory_hostname]['container_networks']['storage_address']['address'] is undefined
|
||||
- not is_metal | bool
|
||||
- name: Set swift replication bridge (is_metal)
|
||||
set_fact:
|
||||
replication_bridge: "{{ 'ansible_' + swift.replication_network | replace('-', '_') }}"
|
||||
when:
|
||||
- inventory_hostname in groups['swift_all']
|
||||
- swift.replication_network is defined
|
||||
- is_metal | bool
|
||||
- name: Set swift replication address (is_metal)
|
||||
set_fact:
|
||||
replication_address: "{{ hostvars[inventory_hostname][replication_bridge]['ipv4']['address'] }}"
|
||||
when:
|
||||
- inventory_hostname in groups['swift_all']
|
||||
- swift.replication_network is defined
|
||||
- is_metal | bool
|
||||
- name: Set swift replication address (is_metal no replication network)
|
||||
set_fact:
|
||||
replication_address: "{{ storage_address }}"
|
||||
when:
|
||||
- inventory_hostname in groups['swift_all']
|
||||
- swift.replication_network is undefined
|
||||
- is_metal | bool
|
||||
- name: Set swift replication address (container)
|
||||
set_fact:
|
||||
replication_address: "{{ hostvars[inventory_hostname]['container_networks']['replication_address']['address'] }}"
|
||||
when:
|
||||
- inventory_hostname in groups['swift_all']
|
||||
- hostvars[inventory_hostname]['container_networks']['replication_address']['address'] is defined
|
||||
- not is_metal | bool
|
||||
- name: Set swift replication address (container no replication network)
|
||||
set_fact:
|
||||
replication_address: "{{ storage_address }}"
|
||||
when:
|
||||
- inventory_hostname in groups['swift_all']
|
||||
- hostvars[inventory_hostname]['container_networks']['replication_address']['address'] is undefined
|
||||
- not is_metal | bool
|
||||
roles:
|
||||
- role: "os_swift"
|
||||
swift_venv_tag: "{{ openstack_release }}"
|
||||
swift_venv_download_url: "{{ openstack_repo_url }}/venvs/{{ openstack_release }}/{{ ansible_distribution | lower }}/swift-{{ openstack_release }}.tgz"
|
||||
swift_storage_address: "{{ storage_address }}"
|
||||
swift_replication_address: "{{ replication_address }}"
|
||||
swift_do_setup: True
|
||||
swift_do_sync: True
|
||||
tags:
|
||||
- "os-swift"
|
||||
vars:
|
||||
is_metal: "{{ properties.is_metal|default(false) }}"
|
||||
|
||||
- name: Installation and setup of Swift
|
||||
hosts: swift_all
|
||||
max_fail_percentage: 20
|
||||
user: root
|
||||
roles:
|
||||
- role: "rsyslog_client"
|
||||
rsyslog_client_log_rotate_file: swift_log_rotate
|
||||
rsyslog_client_log_dir: "/var/log/swift"
|
||||
rsyslog_client_config_name: "99-swift-rsyslog-client.conf"
|
||||
rsyslog_client_log_files:
|
||||
- /var/log/rsyncd.log
|
||||
tags:
|
||||
- "swift-rsyslog-client"
|
||||
- "rsyslog-client"
|
||||
- role: "system_crontab_coordination"
|
||||
tags:
|
||||
- "system-crontab-coordination"
|
||||
|
@ -136,6 +136,8 @@
|
||||
swift_venv_download_url: "{{ openstack_repo_url }}/venvs/{{ openstack_release }}/{{ ansible_distribution | lower }}/swift-{{ openstack_release }}.tgz"
|
||||
swift_storage_address: "{{ storage_address }}"
|
||||
swift_replication_address: "{{ replication_address }}"
|
||||
swift_do_setup: True
|
||||
swift_do_sync: False
|
||||
tags:
|
||||
- "os-swift"
|
||||
- role: "rsyslog_client"
|
||||
|
@ -20,7 +20,9 @@
|
||||
max_fail_percentage: 20
|
||||
user: root
|
||||
roles:
|
||||
- role: "os_swift_sync"
|
||||
- role: "os_swift"
|
||||
swift_do_setup: False
|
||||
swift_do_sync: True
|
||||
swift_venv_tag: "{{ openstack_release }}"
|
||||
tags:
|
||||
- "os-swift-sync"
|
||||
|
@ -0,0 +1,6 @@
|
||||
---
|
||||
upgrade:
|
||||
- The os_swift and os_swift_sync role have been merged into the single os_swift role. Two
|
||||
variables (``swift_do_setup`` and ``swift_do_sync``) have been implemented to action the
|
||||
install and synchronise code paths. The separate playbooks have been adjusted to make use
|
||||
of these variables to ensure that the behaviour is exactly the same as before.
|
Loading…
Reference in New Issue
Block a user