diff --git a/system-configs/ansible/group_vars/all b/system-configs/ansible/group_vars/all index aaa328cd..c364aab4 100644 --- a/system-configs/ansible/group_vars/all +++ b/system-configs/ansible/group_vars/all @@ -23,3 +23,7 @@ zuul_git_url: git://git.openstack.org/openstack-infra/zuul jjb_git_url: git://git.openstack.org/openstack-infra/jenkins-job-builder jjb_auth_username: admin jjb_auth_password: admin + +# Nodepool params +nodepool_user: nodepool +nodepool_git_url: git://git.openstack.org/openstack-infra/nodepool diff --git a/system-configs/ansible/roles/common/tasks/main.yml b/system-configs/ansible/roles/common/tasks/main.yml index 34ba0a1f..691120d2 100644 --- a/system-configs/ansible/roles/common/tasks/main.yml +++ b/system-configs/ansible/roles/common/tasks/main.yml @@ -20,6 +20,7 @@ - unzip - mysql-server - libssl-dev + - python-mysqldb - name: Install pip packages pip: diff --git a/system-configs/ansible/roles/nodepool/tasks/main.yml b/system-configs/ansible/roles/nodepool/tasks/main.yml new file mode 100644 index 00000000..a005a711 --- /dev/null +++ b/system-configs/ansible/roles/nodepool/tasks/main.yml @@ -0,0 +1,65 @@ +--- +- name: Create nodepool directories + file: + path: "{{ item }}" + owner: "{{ nodepool_user }}" + group: "{{ nodepool_user }}" + mode: 0755 + state: directory + with_items: + - "{{ ci_dir }}/files/nodepool_dib" + - "{{ ci_dir }}/nodepool" + - /etc/nodepool + - /var/log/nodepool + - /var/lib/nodepool + - /var/run/nodepool + +- name: Clone nodepool repo + git: + repo: "{{ nodepool_git_url }}" + dest: "{{ ci_dir}}/nodepool" + become: true + become_user: "{{ nodepool_user }}" + +- name: Install nodepool to virtualenv + command: tox -e venv --notest + args: + chdir: "{{ ci_dir }}/nodepool" + become: true + become_user: "{{ nodepool_user }}" + +- name: Copy configs + template: + src: "{{ item }}" + dest: "/etc/nodepool/{{ item }}" + become: true + with_items: + - secure.conf + - logging.conf + +- name: Copy nodepool-scripts + command: cp -r /home/ubuntu/sahara-ci-config/config/nodepool/scripts /opt/ci/files/nodepool-scripts + become: true + +- name: Copy nodepool-scripts + command: "cp -r /home/ubuntu/sahara-ci-config/slave-scripts/update_pool.sh {{ ci_dir }}/files" + become: true + become_user: "{{ jenkins_user }}" + +- name: Create db user for nodepool + mysql_user: + name: nodepool + password: '' + priv: '*.*:ALL' + state: present + +- name: Create db for nodepool + mysql_db: + name: nodepool + state: present + +- name: Create nodepool symlink + file: + src: "{{ ci_dir }}/nodepool/.tox/venv/bin/nodepool" + dest: /usr/sbin/nodepool-client + state: link diff --git a/config/nodepool/config/logging.conf b/system-configs/ansible/roles/nodepool/templates/logging.conf similarity index 100% rename from config/nodepool/config/logging.conf rename to system-configs/ansible/roles/nodepool/templates/logging.conf diff --git a/config/nodepool/config/secure.conf b/system-configs/ansible/roles/nodepool/templates/secure.conf similarity index 100% rename from config/nodepool/config/secure.conf rename to system-configs/ansible/roles/nodepool/templates/secure.conf diff --git a/system-configs/ansible/site.yml b/system-configs/ansible/site.yml index 1fad25ed..8b219ccc 100644 --- a/system-configs/ansible/site.yml +++ b/system-configs/ansible/site.yml @@ -13,11 +13,15 @@ tasks: - name: Create Jenkins CI directory file: - path: "{{ ci_dir }}/files" + path: "{{ ci_dir }}/{{ item }}" owner: "{{ jenkins_user }}" group: "{{ jenkins_user }}" mode: 0755 state: directory + with_items: + - files/nodepool-scripts + - files/ext-files + - logs - name: Install jjb hosts: localhost @@ -28,3 +32,8 @@ hosts: localhost roles: - zuul + +- name: Install nodepool + hosts: localhost + roles: + - nodepool