summaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
authoragardner <agardner@linuxfoundation.org>2017-12-28 18:54:04 -0500
committeragardner <agardner@linuxfoundation.org>2018-02-05 15:45:53 -0500
commit96ac89af9b65921a6914022de29efa0e4d6d79d8 (patch)
tree51a91a018d773c6c53442322e460817daefc8d81 /utils
parent3fd9fd53bbcd887a3189bc276408806f8ee8d64b (diff)
Ansible Playbook to install build server deps
This playbook has been tested in centos and ubuntu on Arm and x86_64 first: install ansible then: ansible-playbook -i inventory.ini main.yml What it does: installs on centos or ubuntu arm or x86_64 installs system deps with the package manager. and python libs with pip. installs docker https://download.docker.com installs docker-compose from distribution repo Change-Id: I3853cd04d0e6c7270ea068b9e1fba1a240a0652e Signed-off-by: agardner <agardner@linuxfoundation.org>
Diffstat (limited to 'utils')
-rw-r--r--utils/build-server-ansible/inventory.ini8
-rw-r--r--utils/build-server-ansible/main.yml37
-rw-r--r--utils/build-server-ansible/vars/CentOS.yml72
-rw-r--r--utils/build-server-ansible/vars/Ubuntu.yml84
-rw-r--r--utils/build-server-ansible/vars/defaults.yml23
-rw-r--r--utils/build-server-ansible/vars/docker-compose-Centos.yml12
-rw-r--r--utils/build-server-ansible/vars/docker-compose-Ubuntu.yml12
7 files changed, 248 insertions, 0 deletions
diff --git a/utils/build-server-ansible/inventory.ini b/utils/build-server-ansible/inventory.ini
new file mode 100644
index 000000000..115b1306e
--- /dev/null
+++ b/utils/build-server-ansible/inventory.ini
@@ -0,0 +1,8 @@
+#############################################################################
+# Copyright (c) 2016 The Linux Foundation 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
+##############################################################################
+localhost ansible_connection=local
diff --git a/utils/build-server-ansible/main.yml b/utils/build-server-ansible/main.yml
new file mode 100644
index 000000000..0fcce715d
--- /dev/null
+++ b/utils/build-server-ansible/main.yml
@@ -0,0 +1,37 @@
+############################################################################
+# Copyright (c) 2016 The Linux Foundation 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
+#############################################################################
+---
+- hosts: "localhost"
+ become: "True"
+ tasks:
+ - debug:
+ msg: "{{ inventory_hostname }} is {{ ansible_distribution }}"
+ - include_vars: vars/defaults.yml
+ - include: vars/CentOS.yml
+ when: ansible_distribution == "CentOS"
+ - include: vars/Ubuntu.yml
+ when: ansible_distribution == "Ubuntu"
+ - name: Install Docker.
+ package: name={{ docker_package }} state={{ docker_package_state }}
+ - name: Ensure Docker is started and enabled at boot.
+ service:
+ name: docker
+ state: started
+ enabled: "yes"
+ - name: install gsutil
+ pip:
+ name: gsutil
+ state: present
+ - name: install tox
+ pip:
+ name: tox
+ state: present
+ - include: vars/docker-compose-CentOS.yml
+ when: ansible_distribution == "CentOS"
+ - include: vars/docker-compose-Ubuntu.yml
+ when: ansible_distribution == "Ubuntu"
diff --git a/utils/build-server-ansible/vars/CentOS.yml b/utils/build-server-ansible/vars/CentOS.yml
new file mode 100644
index 000000000..0d5a01111
--- /dev/null
+++ b/utils/build-server-ansible/vars/CentOS.yml
@@ -0,0 +1,72 @@
+############################################################################
+# Copyright (c) 2016 The Linux Foundation 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
+############################################################################
+---
+- name: Ensure old versions of Docker are not installed.
+ package:
+ name: '{{ item }}'
+ state: absent
+ with_items:
+ - docker
+ - docker-common
+ - docker-engine
+
+- name: Add Docker GPG key.
+ rpm_key:
+ key: https://download.docker.com/linux/centos/gpg
+ state: present
+
+- name: Ensure epel is installed.
+ yum:
+ name: epel-release
+ state: present
+- name: Ensure depdencies are installed.
+ yum:
+ name: "{{ item }}"
+ state: present
+ with_items:
+ - python-pip
+ - rpm-build
+ - kernel-headers
+ - libpcap-devel
+ - zlib-devel
+ - numactl-devel
+ - doxygen
+ - python-sphinx
+ - libvirt-devel
+ - python-devel
+ - openssl-devel
+ - python-six
+ - net-tools
+ - bc
+
+- name: install the 'Development tools' package group
+ yum:
+ name: "@Development tools"
+ state: present
+
+- name: Add Docker repository.
+ get_url:
+ url: "{{ docker_yum_repo_url }}"
+ dest: '/etc/yum.repos.d/docker-ce.repo'
+ owner: root
+ group: root
+ mode: 0644
+
+- name: Configure Docker Edge repo.
+ ini_file:
+ dest: '/etc/yum.repos.d/docker-ce.repo'
+ section: 'docker-ce-edge'
+ option: enabled
+ value: '{{ docker_yum_repo_enable_edge }}'
+
+- name: Configure Docker Test repo.
+ ini_file:
+ dest: '/etc/yum.repos.d/docker-ce.repo'
+ section: 'docker-ce-test'
+ option: enabled
+ value: '{{ docker_yum_repo_enable_test }}'
diff --git a/utils/build-server-ansible/vars/Ubuntu.yml b/utils/build-server-ansible/vars/Ubuntu.yml
new file mode 100644
index 000000000..609c8d548
--- /dev/null
+++ b/utils/build-server-ansible/vars/Ubuntu.yml
@@ -0,0 +1,84 @@
+#############################################################################
+# Copyright (c) 2016 The Linux Foundation 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
+#############################################################################
+---
+- name: Ensure old versions of Docker are not installed.
+ package:
+ name: '{{ item }}'
+ state: absent
+ with_items:
+ - docker
+ - docker-engine
+
+- name: Ensure depdencies are installed.
+ apt:
+ name: "{{ item }}"
+ state: present
+ with_items:
+ - apt-transport-https
+ - ca-certificates
+ - git
+ - build-essential
+ - curl
+ - wget
+ - rpm
+ - fuseiso
+ - createrepo
+ - genisoimage
+ - libfuse-dev
+ - dh-autoreconf
+ - pkg-config
+ - zlib1g-dev
+ - libglib2.0-dev
+ - libpixman-1-dev
+ - python-virtualenv
+ - python-dev
+ - libffi-dev
+ - libssl-dev
+ - libxml2-dev
+ - libxslt1-dev
+ - bc
+ - qemu-kvm
+ - libvirt-bin
+ - ubuntu-vm-builder
+ - bridge-utils
+ - monit
+ - openjdk-8-jre-headless
+ - python-nose
+ - dirmngr
+ - collectd
+ - flex
+ - bison
+ - libnuma-dev
+ - shellcheck
+ - python-pip
+
+- name: Add Docker apt key.
+ apt_key:
+ url: https://download.docker.com/linux/ubuntu/gpg
+ id: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
+ state: present
+ register: add_repository_key
+ ignore_errors: true
+
+- name: Ensure curl is present (on older systems without SNI).
+ package: name=curl state=present
+ when: add_repository_key|failed
+
+- name: Add Docker apt key (alternative for older systems without SNI).
+ # yamllint disable rule:line-length
+ shell: "curl -sSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -"
+ # yamllint enable rule:line-length
+ args:
+ warn: "no"
+ when: add_repository_key|failed
+
+- name: Add Docker repository.
+ apt_repository:
+ repo: "{{ docker_apt_repository }}"
+ state: present
+ update_cache: "yes"
diff --git a/utils/build-server-ansible/vars/defaults.yml b/utils/build-server-ansible/vars/defaults.yml
new file mode 100644
index 000000000..8d83380dd
--- /dev/null
+++ b/utils/build-server-ansible/vars/defaults.yml
@@ -0,0 +1,23 @@
+#############################################################################
+# Copyright (c) 2016 The Linux Foundation 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
+#############################################################################
+---
+docker_package: "docker-ce"
+docker_package_state: present
+
+# Used only for Debian/Ubuntu. Switch 'stable' to 'edge' if needed.
+docker_apt_release_channel: stable
+# yamllint disable rule:line-length
+docker_apt_repository: "deb https://download.docker.com/linux/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} {{ docker_apt_release_channel }}"
+# yamllint enable rule:line-length
+
+# Used only for RedHat/CentOS.
+# yamllint disable rule:line-length
+docker_yum_repo_url: https://download.docker.com/linux/centos/docker-ce.repo
+# yamllint enable rule:line-length
+docker_yum_repo_enable_edge: 0
+docker_yum_repo_enable_test: 0
diff --git a/utils/build-server-ansible/vars/docker-compose-Centos.yml b/utils/build-server-ansible/vars/docker-compose-Centos.yml
new file mode 100644
index 000000000..fc4bcba7e
--- /dev/null
+++ b/utils/build-server-ansible/vars/docker-compose-Centos.yml
@@ -0,0 +1,12 @@
+#############################################################################
+# Copyright (c) 2016 The Linux Foundation 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
+##############################################################################
+---
+- name: Ensure docker compose is installed.
+ yum:
+ name: 'docker-compose'
+ state: present
diff --git a/utils/build-server-ansible/vars/docker-compose-Ubuntu.yml b/utils/build-server-ansible/vars/docker-compose-Ubuntu.yml
new file mode 100644
index 000000000..f985b6a4d
--- /dev/null
+++ b/utils/build-server-ansible/vars/docker-compose-Ubuntu.yml
@@ -0,0 +1,12 @@
+#############################################################################
+# Copyright (c) 2016 The Linux Foundation 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
+#############################################################################
+---
+- name: Ensure docker compose is installed
+ apt:
+ name: 'docker-compose'
+ state: present