Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
systemsmanagement:Ardana:8:CentOS:7.3
ardana-ses
ardana-ses-8.0+git.1554912320.73ad306.obscpio
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ardana-ses-8.0+git.1554912320.73ad306.obscpio of Package ardana-ses
07070100000000000081A40000000000000000000000015CAE144000000089000000000000000000000000000000000000003100000000ardana-ses-8.0+git.1554912320.73ad306/.gitreview[gerrit] host=gerrit.suse.provo.cloud port=29418 project=ardana/ardana-extensions-ses.git defaultremote=ardana defaultbranch=stable/pike 07070100000001000081A40000000000000000000000015CAE14400000279F000000000000000000000000000000000000002E00000000ardana-ses-8.0+git.1554912320.73ad306/LICENSE Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. 07070100000002000081A40000000000000000000000015CAE144000000937000000000000000000000000000000000000003000000000ardana-ses-8.0+git.1554912320.73ad306/README.md# # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # # Ardana SES (SUSE Enterprise Storage) Extension This repo contains the SUSE OpenStack Cloud Ardana extension to support SUSE Enterprise Storage / Ceph. This includes the required ansible ardana scripts that are used to integrate an existing SES cluster into a SUSE OpenStack Cloud (SOC). ## Requirements * A deployed SES cluster * A directory with: ses-config.yml ceph.client.cinder.keyring ceph.client.cinder-backups.keyring ceph.client.nova.keyring ceph.client.glance.keyring .... # inputs required Must have a directory that contains ses-config.yml, keyring files for cinder, glance and nova. Edit the settings.yml and change the ses_config_path, to point to the location of the configuration directory on the deployer. Repo structure: ``` ├── ses-reconfigure.yml ├── ses-deploy.yml ├── roles │ ├── ses_deploy │ │ └── tasks │ │ ├── main.yml │ │ ├── install-qemu-package.yml │ │ ├── install-python-libs.yml │ │ └── install-client.yml │ └── ses_common │ ├── vars │ │ ├── settings.yml │ │ └── main.yml │ ├── templates │ │ └── ceph.conf.j2 │ └── tasks │ ├── _include_setup.yml │ ├── _create_ses_vars.yml │ └── configure.yml ├── README.md ├── LICENSE ├── example │ ├── ses_config.yml │ ├── README.md │ ├── ceph.client.glance.keyring │ ├── ceph.client.cinder.keyring │ └── ceph.client.cinder-backup.keyring └── config └── ses-symlinks.yml ``` 07070100000003000041ED0000000000000000000000025CAE144000000000000000000000000000000000000000000000002D00000000ardana-ses-8.0+git.1554912320.73ad306/config07070100000004000081A40000000000000000000000015CAE1440000002CE000000000000000000000000000000000000003E00000000ardana-ses-8.0+git.1554912320.73ad306/config/ses-symlinks.yml# # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- symlinks: "ses/settings.yml": "roles/ses_common/vars/settings.yml" "ses/ceph.conf.j2": "roles/ses_common/templates/ceph.conf.j2" 07070100000005000041ED0000000000000000000000025CAE144000000000000000000000000000000000000000000000002E00000000ardana-ses-8.0+git.1554912320.73ad306/example07070100000006000081A40000000000000000000000015CAE144000000421000000000000000000000000000000000000003800000000ardana-ses-8.0+git.1554912320.73ad306/example/README.md# # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # # It's assumed that the following is used as the mechanism for setting # up the ceph cluster's users and pools. # The nova pool is managed by the cinder user. # http://docs.ceph.com/docs/master/rbd/rbd-openstack/ # This directory contains an example set of files that are required # for the extension to work. * ses-config.yml - all of the settings that point to the SES cluster * ceph.client.cinder.keyring * ceph.client.cinder_backup.keyring * ceph.client.glance.keyring 07070100000007000081A40000000000000000000000015CAE14400000028D000000000000000000000000000000000000005000000000ardana-ses-8.0+git.1554912320.73ad306/example/ceph.client.cinder-backup.keyring# # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # # [client.cinder-backup] key = AQDJvXhaVNo4DhAADywpAmHXEANLBlziobAT+g== 07070100000008000081A40000000000000000000000015CAE144000000286000000000000000000000000000000000000004900000000ardana-ses-8.0+git.1554912320.73ad306/example/ceph.client.cinder.keyring# # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # # [client.cinder] key = AQCdfIRaxefEMxAAW4zp2My/5HjoST2Y8mJg8A== 07070100000009000081A40000000000000000000000015CAE144000000286000000000000000000000000000000000000004900000000ardana-ses-8.0+git.1554912320.73ad306/example/ceph.client.glance.keyring# # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # # [client.glance] key = AQD9eYRachg1NxAAiT6Hw/xYDA1vwSWLItLpgA== 0707010000000A000081A40000000000000000000000015CAE144000000620000000000000000000000000000000000000003D00000000ardana-ses-8.0+git.1554912320.73ad306/example/ses_config.yml# # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- ses_cluster_configuration: ses_cluster_name: ceph ses_radosgw_url: "https://192.168.56.8:8080/swift/v1" conf_options: ses_fsid: d5d7c7cb-5858-3218-a36f-d028df7b1111 ses_mon_initial_members: ses-osd2, ses-osd3, ses-osd1 ses_mon_host: 192.168.56.8, 192.168.56.9, 192.168.56.7 ses_public_network: 192.168.56.0/21 ses_cluster_network: 192.168.56.0/21 cinder: rbd_store_pool: cinder rbd_store_pool_user: cinder keyring_file_name: ceph.client.cinder.keyring cinder-backup: rbd_store_pool: backups rbd_store_pool_user: cinder_backup keyring_file_name: ceph.client.cinder-backup.keyring # Nova uses the cinder user to access the nova pool, cinder pool # So all we need here is the nova pool name. nova: rbd_store_pool: nova glance: rbd_store_pool: glance rbd_store_pool_user: glance keyring_file_name: ceph.client.glance.keyring 0707010000000B000041ED0000000000000000000000055CAE144000000000000000000000000000000000000000000000002C00000000ardana-ses-8.0+git.1554912320.73ad306/roles0707010000000C000041ED0000000000000000000000065CAE144000000000000000000000000000000000000000000000003700000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_common0707010000000D000041ED0000000000000000000000025CAE144000000000000000000000000000000000000000000000003F00000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_common/library0707010000000E000081A40000000000000000000000015CAE144000000B08000000000000000000000000000000000000005200000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_common/library/load_ses_config.py#!/usr/bin/python # # (c) Copyright 2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # DOCUMENTATION = ''' --- module: load_ses_config short_description: Loads the ses yaml config into a dictionary description: - This module reads the ses_config.yml into a dictionary. options: conf_dir: description: - The SES config directory that contains the ses_config file required: true default: null conf_file: description: - The SES config file name that lives in conf_dir required: true default: null author: ''' EXAMPLES = ''' # Example from Ansible Playbooks. - load_ses_config: conf_dir: "{{ ses_config_path }}" conf_file: "{{ ses_config_file }}" register: ses_config ''' from ansible.module_utils.basic import * #noqa import yaml def read_ses_config(conf_dir, conf_filename): """Read the config file from disk.""" filename = conf_dir + '/' + conf_filename with open(filename, 'r') as stream: existing_yml = yaml.load(stream) return existing_yml def run_module(): module_args = dict( conf_dir=dict(type='str', required=True), conf_file=dict(type='str', required=True) ) module = AnsibleModule( argument_spec=module_args, supports_check_mode=True ) result = dict( changed=False, original_message='', message='', rc=0, ses_confg={} ) conf_dir = module.params['conf_dir'] conf_file = module.params['conf_file'] if not conf_dir: module.fail_json(rc=255, msg="No SES config dir specified") if not conf_file: module.fail_json(rc=255, msg="No SES config filename specified") # read the yaml file try: ses_config = read_ses_config(conf_dir, conf_file) except Exception as exc: module.fail_json( rc=254, msg=exc.message if hasattr(exc, 'message') else exc) result['ses_config'] = ses_config if module.check_mode: # We are in --check mode, so don't migrate the original # config file. module.exit_json(**result) else: # write the new config out if we aren't in check mode result['changed'] = True module.exit_json(**result) def main(): run_module() if __name__ == '__main__': main() 0707010000000F000081A40000000000000000000000015CAE144000000A4C000000000000000000000000000000000000004E00000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_common/library/ses_clients.py#!/usr/bin/python # # (c) Copyright 2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # DOCUMENTATION = ''' --- module: ses_clients short_description: Creates a dict of unique ceph clients needed for ceph description: - This module reads the ses_keyring_info and creates a dict of unique clients as defined in the original ses_config.yml. The yaml can have dupes, but we can't generate ceph.conf with the dupes. options: ses_keyring_info: description: - The generated keyring information created by _create_ses_vars.yml required: true default: null author: ''' EXAMPLES = ''' # Example from Ansible Playbooks. - ses_clients: ses_keyring_info: "{{ ses_keyring_info }}" register: ses_clients_result ''' from ansible.module_utils.basic import * #noqa def run_module(): module_args = dict( ses_keyring_info=dict(type='dict', required=True), ) module = AnsibleModule( argument_spec=module_args, supports_check_mode=True ) result = dict( changed=False, original_message='', message='', rc=0, ses_confg={} ) ses_keyring_info = module.params['ses_keyring_info'] if not ses_keyring_info: module.fail_json(rc=255, msg="No SES keyring information defined") # Generate a unique list of ceph clients and their filenames try: ses_clients = {} clients = ses_keyring_info['clientnames'] files = ses_keyring_info['filenames'] for client in clients: ses_clients[clients[client]] = files[client] except Exception as exc: module.fail_json( rc=254, msg=exc.message if hasattr(exc, 'message') else exc) result['ses_clients'] = ses_clients if module.check_mode: # We are in --check mode, so don't migrate the original # config file. module.exit_json(**result) else: # write the new config out if we aren't in check mode result['changed'] = True module.exit_json(**result) def main(): run_module() if __name__ == '__main__': main() 07070100000010000041ED0000000000000000000000025CAE144000000000000000000000000000000000000000000000003D00000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_common/tasks07070100000011000081A40000000000000000000000015CAE1440000015BD000000000000000000000000000000000000005200000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_common/tasks/_create_ses_vars.yml# # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- - name: ses_common | _create_ses_vars | Initialize ses_ceph_conf set_fact: ses_ceph_conf: "{{ ses_config['ceph_conf'] }}" when: > ses_config is defined and 'ceph_conf' in ses_config - name: ses_common | _create_ses_vars | Initialize ses_cinder_conf set_fact: ses_cinder_conf: "{{ ses_config['cinder'] }}" when: > 'cinder' in ses_config - name: ses_common | _create_ses_vars | Initialize ses_cinder_backup_conf set_fact: ses_cinderbackup_conf: "{{ ses_config['cinder-backup'] }}" when: > 'cinder-backup' in ses_config - name: ses_common | _create_ses_vars | Initialize ses_nova_conf set_fact: ses_nova_conf: "{{ ses_config['nova'] }}" when: > 'nova' in ses_config - name: ses_common | _create_ses_vars | Initialize ses_glance_conf set_fact: ses_glance_conf: "{{ ses_config['glance'] }}" when: > 'glance' in ses_config # The following are global ses extension facts - name: ses_common | _create_ses_vars | try and set radosgw url set_fact: ses_radosgw_url: > {{ ses_config['radosgw_urls'][0] }} when: > ('radosgw_urls' in ses_config and ses_config['radosgw_urls']) # The following facts are used for the extension templating ceph.conf # as well as the other service playbooks to set their respective conf file. - name: ses_common | _create_ses_vars | Set SES conf facts set_fact: ses_conf_file_path: > /etc/ceph/ceph.conf ses_fsid: "{{ ses_ceph_conf.fsid }}" ses_mon_initial_members: > {{ ses_ceph_conf.mon_initial_members }} ses_mon_host: > {{ ses_ceph_conf.mon_host }} ses_public_network: > {{ ses_ceph_conf.public_network }} ses_cluster_network: > {{ ses_ceph_conf.cluster_network }} when: > ses_ceph_conf is defined - name: ses_common | _create_ses_vars | Set SES keyring information set_fact: ses_keyring_info: { 'filenames': { 'cinder': "ceph.client.{{ ses_cinder_conf.rbd_store_user }}.keyring", 'cinder-backup': "ceph.client.{{ ses_cinderbackup_conf.rbd_store_user }}.keyring", 'glance': "ceph.client.{{ ses_glance_conf.rbd_store_user }}.keyring", 'nova': "ceph.client.{{ ses_cinder_conf.rbd_store_user }}.keyring", }, 'keyrings': { 'cinder': "{{ ses_cinder_conf.key }}", 'cinder-backup': "{{ ses_cinderbackup_conf.key }}", 'glance': "{{ ses_glance_conf.key }}", 'nova': "{{ ses_cinder_conf.key }}" }, 'clientnames': { 'cinder': "{{ ses_cinder_conf.rbd_store_user }}", 'cinder-backup': "{{ ses_cinderbackup_conf.rbd_store_user }}", 'glance': "{{ ses_glance_conf.rbd_store_user }}", 'nova': "{{ ses_cinder_conf.rbd_store_user }}" }} - name: ses_common | _create_ses_vars | Generate unique ses clients list ses_clients: ses_keyring_info: "{{ ses_keyring_info }}" register: ses_clients_result - name: ses_common | _create_ses_vars | create ses_clients set_fact: ses_clients: "{{ ses_clients_result['ses_clients'] }}" when: > 'ses_clients' in ses_clients_result - name: ses_common | _create_ses_vars | Set SES Cinder facts set_fact: ses_cinder_pool_name: > {{ ses_cinder_conf.rbd_store_pool }} ses_cinder_user_name: > {{ ses_cinder_conf.rbd_store_user }} ses_cinder_keyring_file_path: > "/etc/ceph/ceph.client.{{ ses_cinder_conf.rbd_store_user }}.keyring" ses_cinder_keyring_value: > {{ ses_cinder_conf.key }} ses_cinder_secret_uuid: "{{ ses_secret_id }}" when: > ses_cinder_conf is defined - name: ses_common | _create_ses_vars | Set SES Cinder Backup facts set_fact: ses_cinder_backup_pool_name: > {{ ses_cinderbackup_conf.rbd_store_pool }} ses_cinder_backup_user_name: > {{ ses_cinderbackup_conf.rbd_store_user }} ses_cinder_backup_keyring_file_path: > "/etc/ceph/ceph.client.{{ ses_cinderbackup_conf.rbd_store_user }}.keyring" ses_cinder_backup_keyring_value: > {{ ses_cinderbackup_conf.key }} when: > ses_cinderbackup_conf is defined # Nova uses the cinder user and keyring, but we still need # the nova pool name. We have to set the ses_nova_user_name as a trigger # to tell nova that ses is enabled. - name: ses_common | _create_ses_vars | Set SES Nova facts set_fact: ses_nova_pool_name: > {{ ses_nova_conf.rbd_store_pool }} ses_nova_user_name: > {{ ses_cinder_conf.rbd_store_user }} ses_nova_secret_uuid: "{{ ses_secret_id }}" when: > ses_nova_conf is defined - name: ses_common | _create_ses_vars | Set SES Glance facts set_fact: ses_glance_pool_name: > {{ ses_glance_conf.rbd_store_pool }} ses_glance_user_name: > {{ ses_glance_conf.rbd_store_user }} ses_glance_keyring_file_path: > "/etc/ceph/ceph.client.{{ ses_glance_conf.rbd_store_user }}.keyring" ses_glance_keyring_value: > {{ ses_glance_conf.key }} when: > ses_glance_conf is defined 07070100000012000081A40000000000000000000000015CAE14400000061D000000000000000000000000000000000000005000000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_common/tasks/_include_setup.yml# # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- - name: ses_common | _include_setup | include settings include_vars: roles/ses_common/vars/settings.yml - name: ses_common | _include_setup | include main vars include_vars: roles/ses_common/vars/main.yml # We have to read the config yaml into a dictionary due to # naming conflicts in the yaml file. - name: ses_common | _include_setup | read the ses_config file load_ses_config: conf_dir: "{{ ses_config_path }}" conf_file: "{{ ses_config_file }}" when: > ses_config_path is defined register: ses_config_result delegate_to: 127.0.0.1 - name: ses_common | _include_setup | create ses_config set_fact: ses_config: "{{ ses_config_result['ses_config'] }}" when: > 'ses_config' in ses_config_result # this supports the file format from phase 2. # the new format comes from SES5.5 - name: ses_common | _include_setup | create all SES integration vars include: _create_ses_vars.yml when: ses_config_path is defined and ses_config is defined 07070100000013000081A40000000000000000000000015CAE144000000937000000000000000000000000000000000000004B00000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_common/tasks/configure.yml# # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- - name: ses_common | configure | Create ceph directory /etc/ceph become: yes file: path: /etc/ceph state: directory owner: "{{ ceph_user }}" group: "{{ ceph_group }}" mode: '0755' - name: ses_common | configure | Copy ceph.conf template: src: roles/ses_common/templates/ceph.conf.j2 dest: /etc/ceph/ceph.conf owner: "{{ ceph_user }}" group: "{{ ceph_group }}" mode: '0644' become: true - name: ses_common | configure | Make sure {{ service }} group exists group: name: "{{ soc_service_groups.get(service) }}" state: present become: true - name: ses_common | configure | Make sure {{ ceph_group }} group exists group: name: "{{ soc_service_groups.get(service) }}" state: present become: true - name: ses_common | configure | Add user {{ service }} to {{ ceph_group }} user: name: "{{ soc_service_groups.get(service) }}" groups: "{{ ceph_group }}" append: yes become: true - name: ses_common | configure | copy {{ service }} keyring template: src: roles/ses_common/templates/client.keyring.j2 dest: "/etc/ceph/{{ ses_keyring_info['filenames'][service] }}" owner: "{{ ceph_user }}" group: "{{ ceph_group }}" mode: '0640' become: true when: '"nova" not in service' # Nova service uses the cinder user/client/keyring for communication to ceph # so we need to copy the cinder keyring for setting up nova. - name: ses_common | configure | copy cinder keyring for nova configuration only template: src: roles/ses_common/templates/client.keyring.j2 dest: "/etc/ceph/{{ ses_keyring_info['filenames']['cinder'] }}" owner: "{{ ceph_user }}" group: "{{ soc_service_groups.get(service) }}" mode: '0640' become: true when: '"nova" in service' 07070100000014000041ED0000000000000000000000025CAE144000000000000000000000000000000000000000000000004100000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_common/templates07070100000015000081A40000000000000000000000015CAE144000000501000000000000000000000000000000000000004E00000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_common/templates/ceph.conf.j2{# # # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # #} [global] fsid = {{ ses_fsid }} mon_initial_members = {{ ses_mon_initial_members }} mon_host = {{ ses_mon_host }} auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx filestore_xattr_use_omap = true public_network = {{ ses_public_network }} cluster_network = {{ ses_cluster_network }} # enable old ceph health format in the json output. This fixes the # ceph_exporter. This option will only stay until the prometheus plugin takes # over mon_health_preluminous_compat = true mon health preluminous compat warning = false rbd default features = 3 {% for client in ses_clients %} [client.{{ client }}] keyring=/etc/ceph/{{ ses_clients[client] }} {% endfor %} 07070100000016000081A40000000000000000000000015CAE1440000002AC000000000000000000000000000000000000005300000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_common/templates/client.keyring.j2{# # (c) Copyright 2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. #} [client.{{ ses_keyring_info['clientnames'][service] }}] key = {{ ses_keyring_info['keyrings'][service] }} 07070100000017000041ED0000000000000000000000025CAE144000000000000000000000000000000000000000000000003C00000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_common/vars07070100000018000081A40000000000000000000000015CAE14400000033C000000000000000000000000000000000000004500000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_common/vars/main.yml# (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- ceph_user: root ceph_group: ceph # The openstack service's group name for setting # permissions on each of the keyring files for # group read access soc_service_groups: cinder: cinder cinder-backup: cinder nova: nova glance: glance 07070100000019000081A40000000000000000000000015CAE1440000003FF000000000000000000000000000000000000004900000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_common/vars/settings.yml# # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. --- # the directory where the ses config files are. # ses_config_path: <path to the ses-config dir> ses_config_file: ses_config.yml # Allow nova libvirt images_type to be set to rbd? # Set this to false, if you only want rbd_user and rbd_secret to be set # in the [libvirt] section of hypervisor.conf ses_nova_set_images_type: True # The unique uuid for use with virsh for cinder and nova ses_secret_id: 457eb676-33da-42ec-9a8c-9293d545c337 0707010000001A000041ED0000000000000000000000045CAE144000000000000000000000000000000000000000000000003800000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_convert0707010000001B000041ED0000000000000000000000025CAE144000000000000000000000000000000000000000000000004000000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_convert/library0707010000001C000081A40000000000000000000000015CAE144000001916000000000000000000000000000000000000005B00000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_convert/library/convert_ses_config_yaml.py#!/usr/bin/python # # (c) Copyright 2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # DOCUMENTATION = ''' --- module: convert_ses_config_yaml short_description: Converts the cloud8 v1 ses_config yaml and keyrings to v2 description: - This module converts a cloud8 v1 manual ses_config.yml and associated keyring files into the v2 SES 5.5 single yaml file format. options: conf_dir: description: - The SES config directory that contains the v1 ses_config file and the keyrings required: true default: null conf_file: description: - The SES config file name that lives in conf_dir required: true default: null author: ''' EXAMPLES = ''' # Example from Ansible Playbooks. - convert_ses_config_yaml: conf_dir: "{{ ses_config_path }}" conf_file: "{{ ses_config_file }}" register: new_config ''' from ansible.module_utils.basic import * #noqa import ConfigParser import io import os import yaml def get_ini_config(filename): """Read an 'ini' format file.""" with open(filename, 'r') as k: parser = ConfigParser.ConfigParser() lines = (line.strip() for line in k.readlines() if len(line.strip())) parser.readfp(io.BytesIO('\n'.join(lines))) return parser def read_v1_config(conf_dir, conf_filename): """Read the config file from disk.""" filename = conf_dir + '/' + conf_filename with open(filename, 'r') as stream: existing_yml = yaml.load(stream) return existing_yml def get_keyring_value(service, conf_dir, config): """Read the keyring value out of an existing keyring file.""" service_conf = config['ses_cluster_configuration'][service] keyring_filename = conf_dir + '/' + service_conf['keyring_file_name'] service_ini = get_ini_config(keyring_filename) for section in service_ini.sections(): if service_ini.has_option(section, 'key'): return service_ini.get(section, 'key') def replace_yaml(conf_dir, conf_filename, ses_config, destructive_replace=True): """move the old config out of the way and write the new config.""" orig_file = conf_dir + '/' + conf_filename new_file = conf_dir + '/' + conf_filename + '.orig' os.rename(orig_file, new_file) output_file = conf_dir + '/' + conf_filename with open(output_file, 'w') as outfile: yaml.dump(ses_config, outfile, default_flow_style=False) def build_new_config(old_conf, cinder_key, cinder_backup_key, glance_key): """Construct the SES 5.5 format of the ceph config yaml.""" ceph_conf = old_conf['ses_cluster_configuration']['conf_options'] cinder_conf = old_conf['ses_cluster_configuration']['cinder'] backup_conf = old_conf['ses_cluster_configuration']['cinder-backup'] nova_conf = old_conf['ses_cluster_configuration']['nova'] glance_conf = old_conf['ses_cluster_configuration']['glance'] radosgw_url = [] if 'ses_radosgw_url' in old_conf['ses_cluster_configuration']: radosgw_url = [old_conf['ses_cluster_configuration']['ses_radosgw_url']] ses_config = { "ceph_conf": { "fsid": ceph_conf['ses_fsid'], "mon_host": ceph_conf['ses_mon_host'], "mon_initial_members": ceph_conf['ses_mon_initial_members'], "cluster_network": ceph_conf['ses_cluster_network'], "public_network": ceph_conf['ses_public_network'] }, "cinder": {"key": cinder_key, "rbd_store_pool": cinder_conf['rbd_store_pool'], "rbd_store_user": cinder_conf['rbd_store_pool_user'], }, "cinder-backup": { "key": cinder_backup_key, "rbd_store_pool": backup_conf['rbd_store_pool'], "rbd_store_user": backup_conf['rbd_store_pool_user'], }, "glance": { "key": glance_key, "rbd_store_pool": glance_conf['rbd_store_pool'], "rbd_store_user": glance_conf['rbd_store_pool_user'], }, "nova": { "rbd_store_pool": nova_conf['rbd_store_pool'] }, "radosgw_urls": radosgw_url } return ses_config def run_module(): module_args = dict( conf_dir=dict(type='str', required=True), conf_file=dict(type='str', required=True) ) module = AnsibleModule( argument_spec=module_args, supports_check_mode=True ) result = dict( changed=False, original_message='', message='', rc=0, ses_confg={} ) conf_dir = module.params['conf_dir'] conf_file = module.params['conf_file'] if not conf_dir: module.fail(rc=255, msg="No SES config dir specified") if not conf_file: module.fail(rc=255, msg="No SES config filename specified") # read the yaml file try: old_conf = read_v1_config(conf_dir, conf_file) except Exception as exc: module.fail(rc=254, msg=exc.message if hasattr(exc, 'message') else exc) # read the keyring files cinder_key = get_keyring_value('cinder', conf_dir, old_conf) cinder_backup_key = get_keyring_value('cinder-backup', conf_dir, old_conf) glance_key = get_keyring_value('glance', conf_dir, old_conf) # construct the final dict ses_config = build_new_config(old_conf, cinder_key, cinder_backup_key, glance_key) result['ses_config'] = ses_config if module.check_mode: # We are in --check mode, so don't migrate the original # config file. module.exit_json(**result) else: # write the new config out if we aren't in check mode replace_yaml(conf_dir, conf_file, ses_config) result['changed'] = True module.exit_json(**result) def main(): run_module() if __name__ == '__main__': main() 0707010000001D000041ED0000000000000000000000025CAE144000000000000000000000000000000000000000000000003E00000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_convert/tasks0707010000001E000081A40000000000000000000000015CAE1440000004F5000000000000000000000000000000000000005800000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_convert/tasks/convert_ses_v1_config.yml# # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- - name: ses_convert | convert_ses_v1_config | include settings include_vars: roles/ses_common/vars/settings.yml - name: ses_convert | convert_ses_v1_config | include main vars include_vars: roles/ses_common/vars/main.yml - name: ses_convert | convert_ses_v1_config | include the v1 ses config include_vars: "{{ ses_config_path }}/{{ ses_config_file }}" when: ses_config_path is defined - name: ses_convert | convert_ses_v1_config | Call convert convert_ses_config_yaml: conf_dir: "{{ ses_config_path }}" conf_file: "{{ ses_config_file }}" when: > ses_config_path is defined and 'ceph_conf' not in hostvars['localhost'] register: new_ses_config_result 0707010000001F000041ED0000000000000000000000035CAE144000000000000000000000000000000000000000000000003700000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_deploy07070100000020000041ED0000000000000000000000025CAE144000000000000000000000000000000000000000000000003D00000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_deploy/tasks07070100000021000081A40000000000000000000000015CAE14400000042E000000000000000000000000000000000000005000000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_deploy/tasks/install-client.yml# # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- - name: ses_deploy | install-client | Install ceph client become: yes package: name: "{{ item }}" state: latest # the pkg names are identical on RedHat and SUSE. # No special condition needed with_items: - ceph-common - name: ses_common | configure | Make sure {{ ceph_group }} group exists group: name: "{{ ceph_group }}" state: present become: true - name: ses_deploy | install-client | Run install-python-libs include: install-python-libs.yml 07070100000022000081A40000000000000000000000015CAE144000000355000000000000000000000000000000000000005500000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_deploy/tasks/install-python-libs.yml# # (c) Copyright 2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- - name: ses_deploy | install-python-libs | Install Ceph python packages become: yes package: name: "{{ item }}" state: latest # the pkg names are identical on RedHat and SUSE. # No special condition needed with_items: - python-rbd - python-rados 07070100000023000081A40000000000000000000000015CAE144000000305000000000000000000000000000000000000005600000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_deploy/tasks/install-qemu-package.yml# # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- - name: ses_deploy | install-qemu-package | Install qemu-block-rbd become: yes package: name: qemu-block-rbd state: present when: ansible_os_family | lower | search('suse') 07070100000024000081A40000000000000000000000015CAE144000000397000000000000000000000000000000000000004600000000ardana-ses-8.0+git.1554912320.73ad306/roles/ses_deploy/tasks/main.yml# # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- - name: ses_deploy | main | include setup include: ../../ses_common/tasks/_include_setup.yml - name: ses_deploy | main | include common main vars include_vars: ../../ses_common/vars/main.yml - name: ses_deploy | main | Install the ceph client code on Cinder node include: install-client.yml when: ses_config_path is defined 07070100000025000081A40000000000000000000000015CAE144000000F00000000000000000000000000000000000000003500000000ardana-ses-8.0+git.1554912320.73ad306/ses-deploy.yml# # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- - hosts: localhost roles: - ses_convert tasks: ############################################################# # Detect if we have the original ses_config format of yaml # and keyring files. If so, then automatically convert them # to the all in 1 yaml format ############################################################# # Include the ses_config that is supplied by user/openATTIC - name: Try to convert a possible v1 config directory include: roles/ses_convert/tasks/convert_ses_v1_config.yml - hosts: localhost roles: - ses_common - ses_deploy tasks: ############################################################# # Include the input model's ses_config, which contains # config options from the ses deployment. This config yaml # contains the cinder/nova/glance pools, users, keyring file # locations as well as the ceph.conf ############################################################# # Include the ses_config that is supplied by user/openATTIC - name: include setup include: roles/ses_common/tasks/_include_setup.yml ################################## # Now update each Swift Proxy node ################################## - hosts: SWF-PRX roles: - ses_common - ses_deploy tasks: ############################################################# # Include the input model's ses_config, which contains # config options from the ses deployment. This config yaml # contains the cinder/nova/glance pools, users, keyring file # locations as well as the ceph.conf ############################################################# # Include the ses_config that is supplied by user/openATTIC - name: include setup include: roles/ses_common/tasks/_include_setup.yml ################################## # Now update each Cinder Volume node ################################## - hosts: CND-VOL roles: - ses_common - ses_deploy tasks: - name: configure cinder include: > roles/ses_common/tasks/configure.yml service=cinder when: ses_config_path is defined ################################## # Now update each Cinder Backup Node ################################## - hosts: CND-BCK roles: - ses_common - ses_deploy tasks: - name: configure cinder include: > roles/ses_common/tasks/configure.yml service=cinder-backup when: ses_config_path is defined ################################## # Now update each Nova node ################################## - hosts: NOV-KVM roles: - ses_common - ses_deploy tasks: - name: Install the ceph qemu client code on Nova Compute node include: roles/ses_deploy/tasks/install-qemu-package.yml when: ses_config_path is defined - name: configure Nova include: > roles/ses_common/tasks/configure.yml service=nova when: ses_config_path is defined ################################## # Now update each Glance node ################################## - hosts: GLA-API roles: - ses_common - ses_deploy tasks: - name: configure glance include: > roles/ses_common/tasks/configure.yml service=glance when: ses_config_path is defined 07070100000026000081A40000000000000000000000015CAE144000000F40000000000000000000000000000000000000003A00000000ardana-ses-8.0+git.1554912320.73ad306/ses-reconfigure.yml# # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- - hosts: localhost roles: - ses_convert tasks: ############################################################# # Detect if we have the original ses_config format of yaml # and keyring files. If so, then automatically convert them # to the all in 1 yaml format ############################################################# # Include the ses_config that is supplied by user/openATTIC - name: Try to convert a possible v1 config directory include: roles/ses_convert/tasks/convert_ses_v1_config.yml - hosts: localhost roles: - ses_common tasks: ############################################################# # Include the input model's ses_config, which contains # config options from the ses deployment. This config yaml # contains the cinder/nova/glance pools, users, keyring file # locations as well as the ceph.conf ############################################################# # Include the ses_config that is supplied by user/openATTIC - name: include setup include: roles/ses_common/tasks/_include_setup.yml ################################## # Now update each Swift Proxy node ################################## - hosts: SWF-PRX roles: - ses_common tasks: ############################################################# # Include the input model's ses_config, which contains # config options from the ses deployment. This config yaml # contains the cinder/nova/glance pools, users, keyring file # locations as well as the ceph.conf ############################################################# # Include the ses_config that is supplied by user/openATTIC - name: include setup include: roles/ses_common/tasks/_include_setup.yml ################################## # Now update each Cinder Volume node ################################## - hosts: CND-VOL roles: - ses_common tasks: - name: include setup include: roles/ses_common/tasks/_include_setup.yml - name: configure cinder include: > roles/ses_common/tasks/configure.yml service=cinder when: ses_config_path is defined ################################## # Now update each Cinder Backup Node ################################## - hosts: CND-BCK roles: - ses_common tasks: - name: include setup include: roles/ses_common/tasks/_include_setup.yml - name: configure cinder include: > roles/ses_common/tasks/configure.yml service=cinder-backup when: ses_config_path is defined ################################## # Now update each Nova node ################################## - hosts: NOV-KVM roles: - ses_common tasks: - name: include setup include: roles/ses_common/tasks/_include_setup.yml - name: configure Nova include: > roles/ses_common/tasks/configure.yml service=nova when: ses_config_path is defined ################################## # Now update each Glance node ################################## - hosts: GLA-API roles: - ses_common tasks: - name: include setup include: roles/ses_common/tasks/_include_setup.yml - name: configure glance include: > roles/ses_common/tasks/configure.yml service=glance when: ses_config_path is defined 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000TRAILER!!!123 blocks
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor