Rsync support for elements and scripts directory
nodepool_project_config_dir should contain the path of adirectory which has both elements/ and scripts/ sub directories. Change-Id: I3a3d2ba225f15cf785da327905915053b04340ea Signed-off-by: Paul Belanger <pabelanger@redhat.com>
This commit is contained in:
parent
91cadfa143
commit
8b831ff81c
|
@ -43,6 +43,10 @@ Role Variables
|
|||
# Default: /var/lib/nodepool
|
||||
nodepool_user_home: /var/lib/nodepool
|
||||
|
||||
# Path to folder containing elements/ and scripts/ used by nodepool.
|
||||
# Default: ""
|
||||
nodepool_project_config_dir: ""
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
|
|
|
@ -17,13 +17,16 @@ nodepool_user_name: nodepool
|
|||
nodepool_user_group: "{{ nodepool_user_name }}"
|
||||
nodepool_user_home: "/var/lib/{{ nodepool_user_name }}"
|
||||
|
||||
nodepool_project_config_dir: ""
|
||||
nodepool_project_config_dir_dest: /etc/nodepool/config
|
||||
|
||||
nodepool_config_database_dburi: "sqlite:///{{ nodepool_user_home }}/nodepool.db"
|
||||
nodepool_config_elements_dir: /etc/nodepool/elements
|
||||
nodepool_config_elements_dir: "{{ nodepool_project_config_dir_dest }}/elements"
|
||||
nodepool_config_gearman_servers: []
|
||||
nodepool_config_images_dir: /opt/nodepool/images
|
||||
nodepool_config_log_config: /etc/nodepool/logging.conf
|
||||
nodepool_config_secure_config: /etc/nodepool/secure.conf
|
||||
nodepool_config_scripts_dir: /etc/nodepool/scripts
|
||||
nodepool_config_scripts_dir: "{{ nodepool_project_config_dir_dest }}/scripts"
|
||||
nodepool_config_zmq_publishers: []
|
||||
|
||||
nodepool_file_logging_conf: etc/nodepool/logging.conf
|
||||
|
|
|
@ -67,3 +67,24 @@
|
|||
dest: "{{ nodepool_config_log_config }}"
|
||||
src: "{{ nodepool_file_logging_conf }}"
|
||||
notify: Restart nodepool
|
||||
|
||||
- name: Create nodepool project config directory.
|
||||
file:
|
||||
group: "{{ ansible_ssh_user }}"
|
||||
mode: 0755
|
||||
owner: "{{ ansible_ssh_user }}"
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
with_items:
|
||||
- "{{ nodepool_project_config_dir_dest }}"
|
||||
|
||||
- name: Rsync nodepool project config directory.
|
||||
sudo: no
|
||||
synchronize:
|
||||
dest: "{{ nodepool_project_config_dir_dest }}"
|
||||
src: "{{ nodepool_project_config_dir }}"
|
||||
rsync_opts:
|
||||
- '--chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r'
|
||||
- '--delete'
|
||||
when: nodepool_project_config_dir != ""
|
||||
notify: Restart nodepool
|
||||
|
|
|
@ -42,6 +42,27 @@
|
|||
that:
|
||||
- nodepool_user_home_getent.stdout == '/var/lib/nodepool'
|
||||
|
||||
- name: Register nodepool_project_config_dir_dest_stat.
|
||||
stat:
|
||||
path: /etc/nodepool/config
|
||||
register: nodepool_project_config_dir_dest_stat
|
||||
|
||||
- name: Assert nodepool_project_config_dir_dest tests.
|
||||
assert:
|
||||
that:
|
||||
- nodepool_project_config_dir_dest_stat.stat.exists
|
||||
- nodepool_project_config_dir_dest_stat.stat.isdir
|
||||
# NOTE(pabelanger): This means we are hardcoded to the
|
||||
# openstack-infra jenkins user in nodepool.
|
||||
- nodepool_project_config_dir_dest_stat.stat.pw_name == 'jenkins'
|
||||
- nodepool_project_config_dir_dest_stat.stat.gr_name == 'jenkins'
|
||||
- nodepool_project_config_dir_dest_stat.stat.mode == '0755'
|
||||
|
||||
- name: Ensure /etc/nodepool/config is empty.
|
||||
shell: "ls -1 /etc/nodepool/config | wc -l"
|
||||
register: result
|
||||
failed_when: result.stdout != "0"
|
||||
|
||||
- name: Register nodepool_user_home_stat.
|
||||
stat:
|
||||
path: /var/lib/nodepool
|
||||
|
|
Loading…
Reference in New Issue