blob: 6114c7c882caba60654bd700bff475872e1cf6ac [file] [log] [blame]
---
# SPDX-FileCopyrightText: 2020 Open Networking Foundation <info@opennetworking.org>
# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
- name: "Provision Packages for Jenkins image"
hosts: default
become: true
tasks:
- name: Add Java Amazon Corretto Jdk repo GPG key
apt_key:
url: https://apt.corretto.aws/corretto.key
state: present
- name: Add Java Amazon Corretto Jdk repo
apt_repository:
repo: deb https://apt.corretto.aws stable main
state: present
- name: Install apt packages
apt:
name:
- "facter"
- "libxml2-utils"
- "bzip2"
- "curl"
- "ebtables"
- "enchant"
- "ethtool"
- "git"
- "graphviz"
- "jq"
- "kafkacat"
- "less"
- "libpcap-dev"
- "libxml2-utils"
- "maven"
- "ruby"
- "screen"
- "socat"
- "ssh"
- "sshpass"
- "zip"
# below four packages are required by npm
- "nodejs"
- "libssl1.0-dev"
- "nodejs-dev"
- "node-gyp"
- "npm"
- "java-1.8.0-amazon-corretto-jdk"
- "java-11-amazon-corretto-jdk"
state: "present"
update_cache: true
cache_valid_time: 3600
- name: Download repo launcher
get_url:
url: "https://gerrit.googlesource.com/git-repo/+/refs/tags/v2.12.2/repo?format=TEXT"
checksum: "sha256:f5afffcc9afae128efd2b325ff19544a0b78acceb33a2edf368ce2de94e8c33e"
dest: /tmp/repo.b64
- name: Decode and make repo launcher executable
shell:
cmd: |
base64 --decode /tmp/repo.b64 > /usr/local/bin/repo;
chmod 755 /usr/local/bin/repo
creates: /usr/local/bin/repo
- name: Download helm archive
get_url:
url: "https://get.helm.sh/helm-v3.5.2-linux-amd64.tar.gz"
checksum: "sha256:01b317c506f8b6ad60b11b1dc3f093276bb703281cb1ae01132752253ec706a2"
dest: "/tmp/helm.tgz"
- name: Unarchive helm
unarchive:
src: "/tmp/helm.tgz"
dest: "/tmp"
remote_src: true
- name: Install helm binary
copy:
src: /tmp/linux-amd64/helm
dest: /usr/local/bin/helm
mode: "0755"
remote_src: true
- name: Download/install kubectl binary
get_url:
url: "https://storage.googleapis.com/kubernetes-release/release/v1.18.15/bin/linux/amd64/kubectl"
checksum: "sha256:eb5a5dd0a72795942ab81d1e4331625e80a90002c8bb39b2cb15aa707a3812c6"
dest: /usr/local/bin/kubectl
mode: "0755"
- name: load /etc/docker/daemon.json from file
slurp:
src: /etc/docker/daemon.json
register: imported_var
- name: append more key/values
set_fact:
imported_var: "{{ imported_var.content|b64decode|from_json | default([]) | combine({ 'registry-mirrors': ['https://mirror.registry.opennetworking.org'] }) }}"
- name: write var to file
copy:
content: "{{ imported_var | to_nice_json }}"
dest: /etc/docker/daemon.json
- name: restart Docker service
systemd:
name: docker
state: restarted
daemon_reload: true
- name: Install multi python3 packages with version specifiers
pip:
name:
- ansible
- ansible-lint
- docker
- docker-compose
- git-review
- httpie
- netaddr
- pylint
- tox
- twine
- virtualenv
- yamllint
executable: pip3
- name: Install multi python2 packages with version specifiers
pip:
name:
- Jinja2
- coverage
- certifi
- cryptography
- git+https://github.com/linkchecker/linkchecker.git@v9.4.0
- graphviz
- isort
- more-itertools==5.0.0
- mock>2.0.0<2.1.0
- ndg-httpsclient
- nose2>0.9.0<0.10.0
- pyopenssl
- pexpect
- pyyaml>3.10.0<3.11.0
- requests>2.14.0<2.15.0
- robotframework
- robotframework-httplibrary
- robotframework-kafkalibrary
- robotframework-lint
- robotframework-requests
- robotframework-sshlibrary
- six
- urllib3
- name: Install multi ruby packages with version specifiers
gem:
name: mdl
version: 0.5.0
- name: Install gitbook-cli npm package with version specifiers
npm:
name: gitbook-cli
global: true
- name: Install markdownlint npm package with version specifiers
npm:
name: markdownlint
global: true
- name: Install typings npm package with version specifiers
npm:
name: typings
global: true
- name: Download minikube
get_url:
url: "https://storage.googleapis.com/minikube/releases/latest/minikube_1.18.0-0_amd64.deb"
checksum: "sha256:6e3918b601704014f3d0b0a09e3116f1ea528ac255525743a800b5f0b5856622"
dest: /tmp/minikube.deb
- name: Install minikube deb
apt:
deb: /tmp/minikube.deb
- name: Download protobuf
get_url:
url: "https://github.com/google/protobuf/releases/download/v3.7.0/protoc-3.7.0-linux-x86_64.zip"
checksum: "sha256:a1b8ed22d6dc53c5b8680a6f1760a305b33ef471bece482e92728f00ba2a2969"
dest: /tmp/protobuf.zip
- name: Unarchive protobuf
unarchive:
src: "/tmp/protobuf.zip"
dest: "/usr/local"
remote_src: true
- name: Download pandoc
get_url:
url: "https://github.com/jgm/pandoc/releases/download/2.10.1/pandoc-2.10.1-1-amd64.deb"
checksum: "sha256:4515d6fe2bf8b82765d8dfa1e1b63ccb0ff3332d60389f948672eaa37932e936"
dest: /tmp/pandoc.deb
- name: Install pandoc deb
apt:
deb: /tmp/pandoc.deb
- name: Download yq
get_url:
url: "https://github.com/mikefarah/yq/releases/download/3.4.0/yq_linux_amd64"
checksum: "sha256:f6bd1536a743ab170b35c94ed4c7c4479763356bd543af5d391122f4af852460"
dest: /usr/local/bin/yq
- name: Change yq Permission
file:
path: /usr/local/bin/yq
mode: 0755
- name: Download hadolint
get_url:
url: "https://github.com/hadolint/hadolint/releases/download/v1.18.0/hadolint-Linux-x86_64"
checksum: "sha256:f9bc9de12438b463ca84e77fde70b07b155d4da07ca21bc3f4354a62c6199db4"
dest: /usr/local/bin/hadolint
- name: Change hadolint Permission
file:
path: /usr/local/bin/hadolint
mode: 0755
- name: Download github-release
get_url:
url: "https://github.com/github-release/github-release/releases/download/v0.10.0/linux-amd64-github-release.bz2"
checksum: "sha256:b360af98188c5988314d672bb604efd1e99daae3abfb64d04051ee17c77f84b6"
dest: /tmp/github-release.bz2
# Unarchive target doesn't support the bz2 format
- name: Unarchive github-release
shell:
cmd: |
bzip2 -d /tmp/github-release.bz2
- name: Install github-release binary
copy:
src: /tmp/github-release
dest: /usr/local/bin/github-release
mode: "0755"
remote_src: true
- name: Recursively remove download files and folders
file:
path: "{{ item }}"
state: absent
with_items:
- /tmp/linux-amd64
- /tmp/helm.tgz
- /tmp/minikube.deb
- /tmp/protobuf.zip
- /tmp/pandoc.deb
- /tmp/repo.b64