aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
Diffstat (limited to 'util')
-rw-r--r--util/check_valid.py14
-rwxr-xr-xutil/docker-compose/group_vars/all33
-rwxr-xr-xutil/docker-compose/roles/cobbler/tasks/main.yml51
-rwxr-xr-xutil/docker-compose/roles/cobbler/templates/dhcp.template.j22
-rwxr-xr-xutil/docker-compose/roles/compass/files/prepare_ansible.sh9
-rwxr-xr-xutil/docker-compose/roles/compass/files/up_containers.sh9
-rwxr-xr-xutil/docker-compose/roles/compass/tasks/main.yml26
-rwxr-xr-xutil/docker-compose/roles/compass/templates/docker-compose.yml.j21
-rwxr-xr-xutil/docker-compose/roles/machines/tasks/main.yml14
9 files changed, 113 insertions, 46 deletions
diff --git a/util/check_valid.py b/util/check_valid.py
index e6a72e71..9348d272 100644
--- a/util/check_valid.py
+++ b/util/check_valid.py
@@ -98,25 +98,19 @@ def check_dha_file(dha):
invalid = False
if dha['TYPE'] == 'baremetal':
for i in dha['hosts']:
- if not is_valid_mac(i['mac']):
- err_print('''invalid address:
- hosts:
- - name: %s
- mac: %s''' % (i['name'], i['mac']))
- invalid = True
for j in i['interfaces']:
- if not is_valid_mac(j.values()[0]):
+ if not is_valid_mac(i['interfaces'].get(j)):
err_print('''invalid address:
hosts:
- name: %s
interfaces:
- - %s: %s''' % (i['name'], j.keys()[0], j.values()[0])) # noqa: E501
+ - %s: %s''' % (i['name'], j, i['interfaces'].get(j))) # noqa: E501
invalid = True
- if not is_valid_ip(i['ipmiIp']):
+ if not is_valid_ip(i['power_ip']):
err_print('''invalid address:
hosts:
- name: %s
- ipmiIp: %s''' % (i['name'], i['ipmiIp']))
+ power_ip: %s''' % (i['name'], i['power_ip']))
invalid = True
if not invalid:
diff --git a/util/docker-compose/group_vars/all b/util/docker-compose/group_vars/all
index 1dafe814..d43d659d 100755
--- a/util/docker-compose/group_vars/all
+++ b/util/docker-compose/group_vars/all
@@ -19,7 +19,7 @@ install_ip_range: 10.1.0.100 10.1.0.250
pip_pkg_name: pip-openstack.tar.gz
feature_pkg_name: packages.tar.gz
-distros:
+distros_x86_64:
ubuntu-16.04.3:
breed: "ubuntu"
kickstart: "default16.seed"
@@ -29,7 +29,9 @@ distros:
aliase: "xenial"
version: "ubuntu"
iso_name: ubuntu-16.04.3-server-amd64
- ppa_name: xenial-pike-ppa
+ ppa_name: xenial-queens-ppa
+ cobbler_name: ubuntu-16.04.3-server
+ cobbler_arch: x86_64
CentOS-7:
breed: "redhat"
@@ -37,5 +39,30 @@ distros:
aliase: "centos7"
version: "centos"
iso_name: CentOS-7-x86_64-Minimal-1708
- ppa_name: centos7-pike-ppa
+ ppa_name: centos7-queens-ppa
+ cobbler_name: CentOS-7-Minimal-1708
+ cobbler_arch: x86_64
+distros_aarch64:
+ ubuntu-16.04:
+ breed: "ubuntu"
+ kickstart: "default16-aarch64.seed"
+ kopts: "netcfg/choose_interface=auto console=ttyS0 console=ttyAMA0 net.ifnames=0"
+ kopts_post: "console=ttyS0 console=ttyAMA0 net.ifnames=0"
+ extra: "--apt-dists=xenial --apt-components=main"
+ aliase: "xenial"
+ version: "ubuntu"
+ iso_name: ubuntu-16.04-server-arm64
+ ppa_name: xenial-queens-ppa
+ cobbler_name: ubuntu-16.04-server
+ cobbler_arch: arm
+
+ CentOS-7:
+ breed: "redhat"
+ kickstart: "default-aarch64.ks"
+ aliase: "centos7"
+ version: "centos"
+ iso_name: CentOS-7-aarch64-Minimal-1708
+ ppa_name: centos7-queens-ppa
+ cobbler_name: CentOS-7-Minimal-1708
+ cobbler_arch: arm
diff --git a/util/docker-compose/roles/cobbler/tasks/main.yml b/util/docker-compose/roles/cobbler/tasks/main.yml
index e3f13088..e4e2cf30 100755
--- a/util/docker-compose/roles/cobbler/tasks/main.yml
+++ b/util/docker-compose/roles/cobbler/tasks/main.yml
@@ -44,23 +44,22 @@
docker cp "{{ compass_dists_dir }}/{{ item.value.ppa_name }}.tar.gz" compass-cobbler:/tmp
docker exec compass-cobbler bash -c \
"mkdir -p /var/lib/cobbler/repo_mirror/{{ item.value.ppa_name }}"
- with_dict: "{{ distros }}"
+ with_dict: "{{ vars['distros_' + ansible_architecture] }}"
run_once: "True"
ignore_errors: "True"
- name: cobbler import iso
shell: |
- name=`basename {{ item.value.iso_name }} | \
- sed -e 's/.iso//g' -e 's/-amd64//g' -e 's/-x86_64//g'`
+ name="{{ item.value.cobbler_name }}"
docker exec compass-cobbler bash -c \
"service cobblerd restart;
sleep 3;
cobbler import --name $name \
--path /mnt/{{ item.value.iso_name }} \
- --arch x86_64 \
+ --arch {{ item.value.cobbler_arch }} \
--kickstart /var/lib/cobbler/kickstarts/{{ item.value.kickstart }} \
--breed {{ item.value.breed }}"
- with_dict: "{{ distros }}"
+ with_dict: "{{ vars['distros_' + ansible_architecture] }}"
run_once: "True"
register: result2
until: result2.rc == 0
@@ -73,14 +72,14 @@
"cobbler repo add --name {{ item.value.ppa_name }} \
--mirror /var/lib/cobbler/repo_mirror/{{ item.value.ppa_name }} \
--mirror-locally True \
- --arch=x86_64 {{ item.value.extra | default()}}"
- with_dict: "{{ distros }}"
+ --arch={{ item.value.cobbler_arch }} \
+ {{ item.value.extra | default() }}"
+ with_dict: "{{ vars['distros_' + ansible_architecture] }}"
run_once: "True"
-- name: edit profiles
+- name: edit profiles for x86_64
shell: |
- name=`basename {{ item.value.iso_name }} | \
- sed -e 's/.iso//g' -e 's/-amd64//g' -e 's/-x86_64//g'`-x86_64
+ name="{{ item.value.cobbler_name }}-x86_64"
docker exec compass-cobbler bash -c \
"cobbler profile edit --name $name \
--name-servers '' \
@@ -88,8 +87,38 @@
--ksmeta \"tree=http://{{ host_ip }}/cobbler/ks_mirror/$name\" \
--kopts \"{{ item.value.kopts | default('') }}\" \
--kopts-post \"{{ item.value.kopts_post | default('') }}\""
- with_dict: "{{ distros }}"
+ with_dict: "{{ distros_x86_64 }}"
run_once: "True"
+ when: ansible_architecture == "x86_64"
+
+- name: edit profile for aarch64
+ shell: |
+ # Cobbler naming on Arm is a mess
+ # Imported name:
+ # - CentOS-7-Minimal-1611
+ # - ubuntu-16.04-server
+ # Profile name:
+ # - CentOS-7-Minimal-1611-arm-arm
+ # - ubuntu-16.04-server-arm-arm64-arm
+ # Kickstart meta url name
+ # - http://x.x.x.x/cobbler/ks_mirror/CentOS-7-Minimal-1611-arm
+ # - http://x.x.x.x/cobbler/ks_mirror/ubuntu-16.04-server-arm
+ name="{{ item.value.cobbler_name }}-arm"
+ profiles=`docker exec compass-cobbler bash -c \
+ "cobbler profile list | grep $name"`
+ for profile_name in $profiles; do
+ docker exec compass-cobbler bash -c \
+ "cobbler profile edit \
+ --name $profile_name \
+ --name-servers '' \
+ --repos {{ item.value.ppa_name }} \
+ --ksmeta \"tree=http://{{ host_ip }}/cobbler/ks_mirror/$name\" \
+ --kopts \"{{ item.value.kopts | default('') }}\" \
+ --kopts-post \"{{ item.value.kopts_post | default('') }}\""
+ done
+ with_dict: "{{ distros_aarch64 }}"
+ run_once: "True"
+ when: ansible_architecture == "aarch64"
- name: cobbler sync
shell: |
diff --git a/util/docker-compose/roles/cobbler/templates/dhcp.template.j2 b/util/docker-compose/roles/cobbler/templates/dhcp.template.j2
index 0665f2fe..8b1f2a61 100755
--- a/util/docker-compose/roles/cobbler/templates/dhcp.template.j2
+++ b/util/docker-compose/roles/cobbler/templates/dhcp.template.j2
@@ -42,6 +42,8 @@ subnet {{ install_subnet }} netmask {{ install_netmask }} {
filename "grub/grub-x86.efi";
} else if option pxe-system-type = 00:07 {
filename "grub/grub-x86_64.efi";
+ } else if option pxe-system-type = 00:0B {
+ filename "grub/grub-aarch64.efi";
} else {
filename "pxelinux.0";
}
diff --git a/util/docker-compose/roles/compass/files/prepare_ansible.sh b/util/docker-compose/roles/compass/files/prepare_ansible.sh
index 031333c8..22b7e905 100755
--- a/util/docker-compose/roles/compass/files/prepare_ansible.sh
+++ b/util/docker-compose/roles/compass/files/prepare_ansible.sh
@@ -1,3 +1,12 @@
+##############################################################################
+# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
#!/bin/bash
for i in `ls /root/compass4nfv/deploy/adapters/ansible | grep "openstack_"`; do
diff --git a/util/docker-compose/roles/compass/files/up_containers.sh b/util/docker-compose/roles/compass/files/up_containers.sh
index 9aca591a..6a57282e 100755
--- a/util/docker-compose/roles/compass/files/up_containers.sh
+++ b/util/docker-compose/roles/compass/files/up_containers.sh
@@ -1,3 +1,12 @@
+##############################################################################
+# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
#!/bin/bash
cd /root/docker_compose
docker-compose up
diff --git a/util/docker-compose/roles/compass/tasks/main.yml b/util/docker-compose/roles/compass/tasks/main.yml
index 9ee7902e..d03a7bf2 100755
--- a/util/docker-compose/roles/compass/tasks/main.yml
+++ b/util/docker-compose/roles/compass/tasks/main.yml
@@ -1,5 +1,8 @@
---
-- include_vars: "{{ compass_dists_dir }}/build.yaml"
+- include_vars: "{{ item }}"
+ with_first_found:
+ - "{{ compass_dists_dir }}/build-{{ ansible_architecture }}.yaml"
+ - "{{ compass_dists_dir }}/build.yaml"
- set_fact:
image_name: "{{ item.name | regex_replace('-', '_') }}"
@@ -16,7 +19,11 @@
{% for item in compass_images.results %}
{% if "ansible_facts" in item %}
{% set facts = item.ansible_facts %}
- {% set _ = image_dict.update({facts.image_name: facts.image_repo}) %}
+ {% set image_name = facts.image_name %}
+ {% if "compass_tasks" in image_name %}
+ {% set image_name = "compass_tasks" %}
+ {% endif %}
+ {% set _ = image_dict.update({image_name: facts.image_repo}) %}
{% endif %}
{% endfor %}
{% for key in image_dict %}
@@ -92,6 +99,11 @@
"{{ docker_compose_dir }}"/ansible/$i
done
+- name: copy ansible plugins
+ copy:
+ src: "{{ compass_dir }}/deploy/ansible_plugins"
+ dest: "{{ docker_compose_dir }}"
+
- name: create run dir
file:
path: "{{ docker_compose_dir }}/ansible/run"
@@ -120,16 +132,6 @@
tags:
- redploy
-- name: add ansible callback
- shell: |
- docker cp "{{ item }}" \
- compass-deck:/root/compass-deck/bin/ansible_callbacks
- docker cp "{{ item }}" \
- compass-tasks:/opt/ansible_callbacks
- with_items:
- - "{{ compass_dir }}/deploy/status_callback.py"
- - "{{ compass_dir }}/deploy/playbook_done.py"
-
- name: rm ansible run
shell: |
docker exec compass-tasks bash -c "rm -rf /var/ansible/run/*"
diff --git a/util/docker-compose/roles/compass/templates/docker-compose.yml.j2 b/util/docker-compose/roles/compass/templates/docker-compose.yml.j2
index 7fc8ea3a..f7748634 100755
--- a/util/docker-compose/roles/compass/templates/docker-compose.yml.j2
+++ b/util/docker-compose/roles/compass/templates/docker-compose.yml.j2
@@ -43,6 +43,7 @@ services:
volumes:
- {{ docker_compose_dir }}/compass_conf:/etc/compass
- {{ docker_compose_dir }}/ansible:/var/ansible
+ - {{ docker_compose_dir }}/ansible_plugins:/opt/ansible_plugins
command:
- /usr/local/bin/start.sh
{% endif %}
diff --git a/util/docker-compose/roles/machines/tasks/main.yml b/util/docker-compose/roles/machines/tasks/main.yml
index 365a9d90..7b4a9f18 100755
--- a/util/docker-compose/roles/machines/tasks/main.yml
+++ b/util/docker-compose/roles/machines/tasks/main.yml
@@ -1,21 +1,15 @@
---
-- name: create switch file if test mode enabled
- template: src=switch_machines_file.j2
- dest="{{ docker_compose_dir }}/switch_machines_file"
- tags:
- - redploy
-
- name: docker cp switch_machines_file
shell: |
- docker cp "{{ docker_compose_dir }}/switch_machines_file" \
- compass-deck:/tmp/switch_machines_file
+ docker cp "{{ docker_compose_dir }}/machine" \
+ compass-deck:/tmp/machine
tags:
- redploy
- name: inject switches and mac addresses
shell: |
docker exec compass-deck bash -c \
- "/opt/compass/bin/manage_db.py set_switch_machines \
- --switch_machines_file /tmp/switch_machines_file"
+ "/opt/compass/bin/manage_db.py set_machine \
+ --machine_file /tmp/machine"
tags:
- redploy