diff options
author | agardner <agardner@linuxfoundation.org> | 2017-12-28 18:54:04 -0500 |
---|---|---|
committer | agardner <agardner@linuxfoundation.org> | 2018-02-05 15:45:53 -0500 |
commit | 96ac89af9b65921a6914022de29efa0e4d6d79d8 (patch) | |
tree | 51a91a018d773c6c53442322e460817daefc8d81 /utils/build-server-ansible/vars | |
parent | 3fd9fd53bbcd887a3189bc276408806f8ee8d64b (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/build-server-ansible/vars')
-rw-r--r-- | utils/build-server-ansible/vars/CentOS.yml | 72 | ||||
-rw-r--r-- | utils/build-server-ansible/vars/Ubuntu.yml | 84 | ||||
-rw-r--r-- | utils/build-server-ansible/vars/defaults.yml | 23 | ||||
-rw-r--r-- | utils/build-server-ansible/vars/docker-compose-Centos.yml | 12 | ||||
-rw-r--r-- | utils/build-server-ansible/vars/docker-compose-Ubuntu.yml | 12 |
5 files changed, 203 insertions, 0 deletions
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 |