--- # Copyright 2014, Rackspace US, Inc. # # 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: Create the system group ansible.builtin.group: name: "{{ nova_system_group_name }}" gid: "{{ nova_system_group_gid | default(omit) }}" state: "present" system: "yes" tags: - nova-group - name: Create the nova system user ansible.builtin.user: name: "{{ nova_system_user_name }}" uid: "{{ nova_system_user_uid | default(omit) }}" group: "{{ nova_system_group_name }}" comment: "{{ nova_system_comment }}" shell: "{{ nova_system_shell }}" system: "yes" createhome: "yes" home: "{{ nova_system_home_folder }}" tags: - nova-user - nova-key - name: Create Nova NFS mount point(s) ansible.builtin.file: path: "{{ item.local_path }}" state: directory mode: "0755" with_items: "{{ nova_nfs_client }}" tags: - nova-dirs # NOTE(cloudnull): During an upgrade the local directory may exist on a source # install. If the directory does exist it will need to be # removed. This is required on source installs because the # config directory is a link. - name: Source config block block: - name: Stat config directory ansible.builtin.stat: path: "{{ nova_conf_dir }}" register: nova_conf_dir_stat - name: Remove the config directory ansible.builtin.file: path: "{{ nova_conf_dir }}" state: absent when: - nova_conf_dir_stat.stat.isdir is defined and nova_conf_dir_stat.stat.isdir when: - nova_install_method == 'source' - name: Create nova dir ansible.builtin.file: path: "{{ item.path }}" state: "{{ item.state | default('directory') }}" owner: "{{ item.owner | default(nova_system_user_name) }}" group: "{{ item.group | default(nova_system_group_name) }}" mode: "{{ item.mode | default('0755') }}" when: - (item.condition | default(true)) | bool - item.path not in nova_mount_points with_items: - path: "/openstack" owner: "root" group: "root" - path: "{{ nova_conf_version_dir }}" mode: "0755" - path: "{{ nova_conf_version_dir }}/provider_config" owner: "root" mode: "0640" - path: "/etc/sudoers.d" mode: "0750" owner: "root" group: "root" - path: "{{ nova_system_home_folder }}" - path: "{{ nova_system_home_folder }}/.ssh" mode: "0700" - path: "{{ nova_system_home_folder }}/cache/api" - path: "{{ nova_system_home_folder }}/instances" tags: - nova-dirs - name: Set default nova console for ppc64le ansible.builtin.set_fact: nova_console_type: "novnc" when: ansible_facts['architecture'] == 'ppc64le'