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:
Paul Belanger 2015-11-26 16:49:56 -05:00
parent 91cadfa143
commit 8b831ff81c
4 changed files with 51 additions and 2 deletions

View File

@ -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
------------

View File

@ -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

View File

@ -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

View File

@ -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