Switch to separate elements and scripts directories

This will give the user more flexibility when defining source folders.

Change-Id: Ib57f81fc6892c55e67be647d2f1d2e56fd4f08ec
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
This commit is contained in:
Paul Belanger 2015-11-27 22:32:47 -05:00
parent d214efab4b
commit 3f9c17f936
4 changed files with 71 additions and 23 deletions

View File

@ -43,9 +43,13 @@ Role Variables
# Default: /var/lib/nodepool
nodepool_user_home: /var/lib/nodepool
# Path to folder containing elements/ and scripts/ used by nodepool.
# Path to folder containing elements used by nodepool.
# Default: ""
nodepool_project_config_dir: ""
nodepool_elements_dir: ""
# Path to folder containing scripts used by nodepool.
# Default: ""
nodepool_scripts_dir: ""
Dependencies
------------

View File

@ -17,16 +17,19 @@ 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_elements_dir: ""
nodepool_elements_dir_dest: /etc/nodepool/elements
nodepool_scripts_dir: ""
nodepool_scripts_dir_dest: /etc/nodepool/scripts
nodepool_config_database_dburi: "sqlite:///{{ nodepool_user_home }}/nodepool.db"
nodepool_config_elements_dir: "{{ nodepool_project_config_dir_dest }}/elements"
nodepool_config_elements_dir: "{{ nodepool_elements_dir_dest }}"
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: "{{ nodepool_project_config_dir_dest }}/scripts"
nodepool_config_scripts_dir: "{{ nodepool_scripts_dir_dest }}"
nodepool_config_zmq_publishers: []
nodepool_file_logging_conf: etc/nodepool/logging.conf

View File

@ -68,7 +68,7 @@
src: "{{ nodepool_file_logging_conf }}"
notify: Restart nodepool
- name: Create nodepool project config directory.
- name: Create nodepool elements directory.
file:
group: "{{ ansible_ssh_user }}"
mode: 0775
@ -76,14 +76,34 @@
path: "{{ item }}"
state: directory
with_items:
- "{{ nodepool_project_config_dir_dest }}"
- "{{ nodepool_elements_dir_dest }}"
- name: Rsync nodepool project config directory.
- name: Rsync nodepool elements directory.
sudo: no
synchronize:
dest: "{{ nodepool_project_config_dir_dest }}"
dest: "{{ nodepool_elements_dir_dest }}"
perms: yes
rsync_opts:
- '--delete'
src: "{{ nodepool_project_config_dir }}"
when: nodepool_project_config_dir != ""
src: "{{ nodepool_elements_dir }}"
when: nodepool_elements_dir != ""
- name: Create nodepool scripts directory.
file:
group: "{{ ansible_ssh_user }}"
mode: 0775
owner: "{{ ansible_ssh_user }}"
path: "{{ item }}"
state: directory
with_items:
- "{{ nodepool_scripts_dir_dest }}"
- name: Rsync nodepool scripts directory.
sudo: no
synchronize:
dest: "{{ nodepool_scripts_dir_dest }}"
perms: yes
rsync_opts:
- '--delete'
src: "{{ nodepool_scripts_dir }}"
when: nodepool_scripts_dir != ""

View File

@ -42,24 +42,45 @@
that:
- nodepool_user_home_getent.stdout == '/var/lib/nodepool'
- name: Register nodepool_project_config_dir_dest_stat.
- name: Register nodepool_elements_dir_dest_stat.
stat:
path: /etc/nodepool/config
register: nodepool_project_config_dir_dest_stat
path: /etc/nodepool/elements
register: nodepool_elements_dir_dest_stat
- name: Assert nodepool_project_config_dir_dest tests.
- name: Assert nodepool_elements_dir_dest tests.
assert:
that:
- nodepool_project_config_dir_dest_stat.stat.exists
- nodepool_project_config_dir_dest_stat.stat.isdir
- nodepool_elements_dir_dest_stat.stat.exists
- nodepool_elements_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 == '0775'
- nodepool_elements_dir_dest_stat.stat.pw_name == 'jenkins'
- nodepool_elements_dir_dest_stat.stat.gr_name == 'jenkins'
- nodepool_elements_dir_dest_stat.stat.mode == '0775'
- name: Ensure /etc/nodepool/config is empty.
shell: "ls -1 /etc/nodepool/config | wc -l"
- name: Ensure /etc/nodepool/elements is empty.
shell: "ls -1 /etc/nodepool/elements | wc -l"
register: result
failed_when: result.stdout != "0"
- name: Register nodepool_scripts_dir_dest_stat.
stat:
path: /etc/nodepool/scripts
register: nodepool_scripts_dir_dest_stat
- name: Assert nodepool_scripts_dir_dest tests.
assert:
that:
- nodepool_scripts_dir_dest_stat.stat.exists
- nodepool_scripts_dir_dest_stat.stat.isdir
# NOTE(pabelanger): This means we are hardcoded to the
# openstack-infra jenkins user in nodepool.
- nodepool_scripts_dir_dest_stat.stat.pw_name == 'jenkins'
- nodepool_scripts_dir_dest_stat.stat.gr_name == 'jenkins'
- nodepool_scripts_dir_dest_stat.stat.mode == '0775'
- name: Ensure /etc/nodepool/scripts is empty.
shell: "ls -1 /etc/nodepool/scripts | wc -l"
register: result
failed_when: result.stdout != "0"