Skip to content
Snippets Groups Projects
  1. Apr 08, 2020
    • Mark Goddard's avatar
      Avoid unconditional fact gathering · e924c99c
      Mark Goddard authored
      One way to improve the performance of Ansible is through fact caching.
      Rather than gather facts in every play, we can configure Ansible to
      cache them in a persistent store. An example Ansible configuration for
      doing this is as follows:
      
      [defaults]
      gathering = smart
      fact_caching = jsonfile
      fact_caching_connection = ./facts
      fact_caching_timeout = 86400
      
      While this mostly just works, there are a few places where we
      unconditionally gather facts using the setup module. This change
      modifies these to only gather facts when necessary.
      
      We no longer execute the MichaelRigart.interfaces role using become:
      true, since it may gather facts and we do not want it to do so as root.
      The role uses become where necessary.
      
      Change-Id: I9984a187fc6c0496ada489bb8eef36e44d695aac
      Story: 2007492
      Task: 39216
      e924c99c
  2. Apr 24, 2019
    • Scott Solkhon's avatar
      Support for Ceph and Swift storage networks, and improvements to Swift · 6496cfc0
      Scott Solkhon authored
      In a deployment that has both Ceph or Swift deployed it can be useful to seperate the network traffic.
      This change adds support for dedicated storage networks for both Ceph and Swift. By default, the storage hosts are
      attached to the following networks:
      
      * Overcloud admin network
      * Internal network
      * Storage network
      * Storage management network
      
      This adds four additional networks, which can be used to seperate the storage network traffic as follows:
      
      * Ceph storage network (ceph_storage_net_name) is used to carry Ceph storage
        data traffic. Defaults to the storage network (storage_net_name).
      * Ceph storage management network (ceph_storage_mgmt_net_name) is used to carry
        storage management traffic. Defaults to the storage management network
        (storage_mgmt_net_name).
      * Swift storage network (swift_storage_net_name) is used to carry Swift storage data
        traffic. Defaults to the storage network (storage_net_name).
      * Swift storage replication network (swift_storage_replication_net_name) is used to
        carry storage management traffic. Defaults to the storage management network
        (storage_mgmt_net_name).
      
      This change also includes several improvements to Swift device management and ring generation.
      
      The device management and ring generation are now separate, with device management occurring during
      'kayobe overcloud host configure', and ring generation during a new command, 'kayobe overcloud swift rings generate'.
      
      For the device management, we now use standard Ansible modules rather than commands for device preparation.
      File system labels can be configured for each device individually.
      
      For ring generation, all commands are run on a single host, by default a host in the Swift storage group.
      A python script runs in one of the kolla Swift containers, which consumes an autogenerated YAML config file that defines
      the layout of the rings.
      
      Change-Id: Iedc7535532d706f02d710de69b422abf2f6fe54c
      6496cfc0
Loading