aboutsummaryrefslogtreecommitdiffstats
path: root/tools/ubuntu-server-cloudimg-modify.sh
blob: 66c740eb6491d5c3f24e64ffe3fcb6de7b6b49eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/bin/bash
##############################################################################
# Copyright (c) 2015 Ericsson AB 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
##############################################################################

# installs required packages
# must be run from inside the image (either chrooted or running)

set -ex

if [ $# -eq 1 ]; then
    nameserver_ip=$1

    # /etc/resolv.conf is a symbolic link to /run, restore at end
    rm /etc/resolv.conf
    echo "nameserver $nameserver_ip" > /etc/resolv.conf
    echo "nameserver 8.8.8.8" >> /etc/resolv.conf
    echo "nameserver 8.8.4.4" >> /etc/resolv.conf
fi

# iperf3 only available for trusty in backports
if grep -q trusty /etc/apt/sources.list ; then
    if [ "${YARD_IMG_ARCH}" = "arm64" ]; then
        echo "deb [arch=${YARD_IMG_ARCH}] http://ports.ubuntu.com/ trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list
    else
        echo "deb http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list
    fi
fi
# Workaround for building on CentOS (apt-get is not working with http sources)
# sed -i 's/http/ftp/' /etc/apt/sources.list

# Force apt to use ipv4 due to build problems on LF POD.
echo 'Acquire::ForceIPv4 "true";' > /etc/apt/apt.conf.d/99force-ipv4

# Add hostname to /etc/hosts.
# Allow console access via pwd
cat <<EOF >/etc/cloud/cloud.cfg.d/10_etc_hosts.cfg
manage_etc_hosts: True
password: RANDOM
chpasswd: { expire: False }
ssh_pwauth: True
EOF
apt-get update
apt-get install -y \
    bc \
    fio \
    git \
    gcc \
    iperf3 \
    ethtool \
    iproute2 \
    linux-tools-common \
    linux-tools-generic \
    lmbench \
    make \
    netperf \
    patch \
    perl \
    rt-tests \
    stress \
    sysstat

CLONE_DEST=/opt/tempT

# remove before cloning
rm -rf -- "${CLONE_DEST}"

git clone https://github.com/kdlucas/byte-unixbench.git "${CLONE_DEST}"

make --directory "${CLONE_DEST}/UnixBench/"

git clone https://github.com/beefyamoeba5/ramspeed.git "${CLONE_DEST}/RAMspeed"

cd "${CLONE_DEST}/RAMspeed/ramspeed-2.6.0"
mkdir temp
bash build.sh

git clone https://github.com/beefyamoeba5/cachestat.git "${CLONE_DEST}/Cachestat"

# restore symlink
ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf
or">: name: fuel-project-jobs project: 'fuel' installer: 'fuel' stream: - master: branch: '{stream}' gs-pathname: '' disabled: false - colorado: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false jobs: - 'fuel-build-daily-{stream}' - 'fuel-merge-build-{stream}' - 'fuel-merge-deploy-virtual-{stream}' - 'fuel-deploy-generic-daily-{stream}' ######################## # job templates ######################## - job-template: name: 'fuel-build-daily-{stream}' disabled: '{obj:disabled}' concurrent: false properties: - throttle: enabled: true max-total: 1 max-per-node: 1 option: 'project' parameters: - project-parameter: project: '{project}' - 'opnfv-build-ubuntu-defaults' - '{installer}-defaults' - choice: name: FORCE_BUILD choices: - 'false' - 'true' description: "Force build even if there is no changes in fuel repo. Default false" - fuel-project-parameter: gs-pathname: '{gs-pathname}' scm: - git-scm: credentials-id: '{ssh-credentials}' refspec: '' branch: '{branch}' triggers: - timed: '0 H/4 * * *' wrappers: - timeout: timeout: 360 fail: true builders: - shell: !include-raw-escape: ./fuel-build.sh - shell: !include-raw-escape: ./fuel-upload-artifact.sh - shell: !include-raw-escape: ./fuel-workspace-cleanup.sh publishers: - email: recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com fzhadaev@mirantis.com - job-template: name: 'fuel-merge-build-{stream}' disabled: '{obj:disabled}' concurrent: true parameters: - project-parameter: project: '{project}' - gerrit-parameter: branch: '{branch}' - 'opnfv-build-ubuntu-defaults' - '{installer}-defaults' - fuel-project-parameter: gs-pathname: '{gs-pathname}' scm: - gerrit-trigger-scm: credentials-id: '{ssh-credentials}' refspec: '' choosing-strategy: 'default' wrappers: - ssh-agent-credentials: users: - '{ssh-credentials}' - timeout: timeout: 360 fail: true triggers: - gerrit: trigger-on: - change-merged-event - comment-added-contains-event: comment-contains-value: 'remerge' projects: - project-compare-type: 'ANT' project-pattern: '{project}' branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' file-paths: - compare-type: ANT pattern: 'ci/**' - compare-type: ANT pattern: 'build/**' - compare-type: ANT pattern: 'deploy/**' forbidden-file-paths: - compare-type: ANT pattern: 'docs/**' builders: - shell: !include-raw-escape: ./fuel-build.sh - shell: !include-raw-escape: ./fuel-upload-artifact.sh - shell: !include-raw-escape: ./fuel-workspace-cleanup.sh - job-template: name: 'fuel-merge-deploy-virtual-{stream}' disabled: true concurrent: true properties: - throttle: enabled: true max-total: 2 max-per-node: 1 option: 'project' - build-blocker: use-build-blocker: true blocking-jobs: - 'fuel-os-.*?-virtual-daily-.*' - 'fuel-merge-deploy-virtual-.*' block-level: 'NODE' parameters: - project-parameter: project: '{project}' - gerrit-parameter: branch: '{branch}' - 'fuel-virtual-defaults': installer: '{installer}' - '{installer}-defaults' - fuel-project-parameter: gs-pathname: '{gs-pathname}' scm: - gerrit-trigger-scm: credentials-id: '{ssh-credentials}' refspec: '' choosing-strategy: 'default' wrappers: - ssh-agent-credentials: users: - '{ssh-credentials}' triggers: - gerrit: trigger-on: - change-merged-event - comment-added-contains-event: comment-contains-value: 'remerge' projects: - project-compare-type: 'ANT' project-pattern: '{project}' branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' file-paths: - compare-type: ANT pattern: 'ci/**' - compare-type: ANT pattern: 'build/**' - compare-type: ANT pattern: 'deploy/**' forbidden-file-paths: - compare-type: ANT pattern: 'docs/**' dependency-jobs: 'fuel-merge-build-{stream}' builders: - shell: !include-raw-escape: ./fuel-download-artifact.sh - shell: !include-raw-escape: ./fuel-deploy.sh - shell: !include-raw-escape: ./fuel-workspace-cleanup.sh publishers: - email: recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com fzhadaev@mirantis.com - job-template: name: 'fuel-deploy-generic-daily-{stream}' concurrent: true disabled: '{obj:disabled}' properties: - throttle: enabled: true max-per-node: 1 option: 'project' - build-blocker: use-build-blocker: true blocking-jobs: - 'fuel-os-.*?-daily-.*' - 'fuel-deploy-generic-daily-.*' block-level: 'NODE' parameters: - project-parameter: project: '{project}' - '{installer}-defaults' - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT description: 'Git URL to use on this Jenkins Slave' - string: name: DEPLOY_SCENARIO default: 'os-odl_l2-nofeature-ha' - node: name: SLAVE_NAME description: 'Slave name on Jenkins' allowed-slaves: - ericsson-pod2 - lf-pod2 - ericsson-pod1 default-slaves: - ericsson-pod2 - fuel-project-parameter: gs-pathname: '{gs-pathname}' scm: - git-scm: credentials-id: '{ssh-credentials}' refspec: '' branch: '{branch}' wrappers: - build-name: name: '$BUILD_NUMBER - POD: $NODE_NAME Scenario: $DEPLOY_SCENARIO' builders: - shell: !include-raw-escape: ./fuel-download-artifact.sh - shell: !include-raw-escape: ./fuel-deploy.sh ######################## # parameter macros ######################## - parameter: name: fuel-project-parameter parameters: - string: name: BUILD_DIRECTORY default: $WORKSPACE/build_output description: "Directory where the build artifact will be located upon the completion of the build." - string: name: CACHE_DIRECTORY default: $HOME/opnfv/cache/$INSTALLER_TYPE description: "Directory where the cache to be used during the build is located." - string: name: GS_URL default: artifacts.opnfv.org/$PROJECT{gs-pathname} description: "URL to Google Storage."