This is an automated email from the ASF dual-hosted git repository.
mck pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra-builds.git
The following commit(s) were added to refs/heads/trunk by this push:
new 4d4e346 Add 14 Jenkins agents to ci-cassandra, and retire 7. Clean up
the installation documentation, and provide an install script for stick Ubuntu
18.04 servers. Rename ASF-jenkins-agents.txt to ASF-jenkins-agents.md
4d4e346 is described below
commit 4d4e3462e0d8d2359dc321b5219aec9099281ba2
Author: Mick Semb Wever <[email protected]>
AuthorDate: Sat Mar 20 11:27:44 2021 +0100
Add 14 Jenkins agents to ci-cassandra, and retire 7.
Clean up the installation documentation, and provide an install script for
stick Ubuntu 18.04 servers.
Rename ASF-jenkins-agents.txt to ASF-jenkins-agents.md
---
ASF-jenkins-agents.md | 126 +++++++++++++++++++++++++++++++++++++++++
ASF-jenkins-agents.txt | 131 -------------------------------------------
jenkins-dsl/agent-install.sh | 90 +++++++++++++++++++++++++++++
3 files changed, 216 insertions(+), 131 deletions(-)
diff --git a/ASF-jenkins-agents.md b/ASF-jenkins-agents.md
new file mode 100644
index 0000000..f188077
--- /dev/null
+++ b/ASF-jenkins-agents.md
@@ -0,0 +1,126 @@
+# Apache Cassandra [ci-cassandra.apache.org](ci-cassandra.apache.org) Jenkins
Resources
+
+This document contains information on
+- how to set up servers to be added to the ci-cassandra.apache.org jenkins
cluster, and
+- the list of servers currently donated and running at ci-cassandra.apache.org
+
+
+Additional compute resource donations for the Apache Cassandra project are
appreciated.
+If you have questions about compute resource donations, ask on the dev mailing
list <[email protected]>.
+
+
+## Server Requirements
+
+Server Requirements:
+ - Installed OS software is the stock online.net Ubuntu 18.04 LTS amd64 image.
+ - Static IP address.
+ - Root volume is 100GB+.
+ - Data volume is 500GB+ and is mounted at `/home/jenkins`.
+
+
+## Ubuntu 18.04 Server Installation
+
+1. Sudoers need to sudo without password.
+
+Edit sudoers to allow INFRA to sudo without password, or provide them with the
password.
+For example, set: `%sudo ALL=(ALL:ALL) NOPASSWD:ALL`
+
+ `$ sudo visudo`
+
+2. The `agent-install.sh` must be run in preparation for ASF Infra to add it
to the Jenkins cluster.
+
+To run the script…
+
+ a. `scp agent-install.sh <server>:~/`
+
+ b. `ssh <server>`
+
+ c. `sudo bash agent-install.sh`
+
+
+## AWS Server Installation
+
+On AWS you are free to re-use the public AMI `ami-02cd664c0e9899a91
cassandra-jenkins-host-v3`.
+You will find this AMI in region `us-west-2`.
+
+It is highly preferable to provision nodes in a such way that its reboot nor
shutdown / start will
+change node's IP address. Use Elastic IPs for this. The default limit per
region is 5. You may
+ask for more in console
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-limit
+
+
+----
+
+# Current Agents
+
+- All have label `cassandra` (or `cassandra-arm` for arm64 architecture).
+- Agents with 500GB+ data volumes have the label `cassandra-dtest`, enabling
them to run the python dtests.
+- Agents with 32GB+ RAM have the label `cassandra-dtest-large`, enabling them
to run the resource intensive python dtests.
+
+| Agent Name | Donated By | Description
| IP Address |
+| -------------- | -----------:|
--------------------------------------------:|:--------------:|
+| [cassandra8](https://ci-cassandra.apache.org/computer/cassandra8) |
Instaclustr | Ubuntu 18.04 LTS amd64, 32G RAM, m4.2xlarge | 52.38.142.130 |
+| [cassandra9](https://ci-cassandra.apache.org/computer/cassandra9) |
Instaclustr | Ubuntu 18.04 LTS amd64, 32G RAM, m4.2xlarge | 34.223.128.131 |
+| [cassandra10](https://ci-cassandra.apache.org/computer/cassandra10) |
Instaclustr | Ubuntu 18.04 LTS amd64, 32G RAM, m4.2xlarge | 34.209.95.9 |
+| [cassandra11](https://ci-cassandra.apache.org/computer/cassandra11) |
Instaclustr | Ubuntu 18.04 LTS amd64, 32G RAM, m4.2xlarge | 52.13.31.44 |
+| [cassandra12](https://ci-cassandra.apache.org/computer/cassandra12) |
Instaclustr | Ubuntu 18.04 LTS amd64, 32G RAM, m4.2xlarge | 52.88.147.81 |
+| [cassandra13](https://ci-cassandra.apache.org/computer/cassandra13) |
Instaclustr | Ubuntu 18.04 LTS amd64, 32G RAM, m4.2xlarge | 34.213.143.168 |
+| [cassandra14](https://ci-cassandra.apache.org/computer/cassandra14) |
Instaclustr | Ubuntu 18.04 LTS amd64, 32G RAM, m4.2xlarge | 54.148.1.179 |
+| [cassandra15](https://ci-cassandra.apache.org/computer/cassandra15) |
Instaclustr | Ubuntu 18.04 LTS amd64, 32G RAM, m4.2xlarge | 54.189.131.27 |
+| [cassandra16](https://ci-cassandra.apache.org/computer/cassandra16) |
Instaclustr | Ubuntu 18.04 LTS amd64, 32G RAM, m4.2xlarge | 54.201.88.175 |
+| [cassandra17](https://ci-cassandra.apache.org/computer/cassandra17) |
Amazon | Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge | 44.230.121.32 |
+| [cassandra18](https://ci-cassandra.apache.org/computer/cassandra18) |
Amazon | Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge | 44.230.213.15 |
+| [cassandra19](https://ci-cassandra.apache.org/computer/cassandra19) |
Amazon | Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge | 44.231.106.18 |
+| [cassandra20](https://ci-cassandra.apache.org/computer/cassandra20) |
Amazon | Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge | 44.231.194.19 |
+| [cassandra21](https://ci-cassandra.apache.org/computer/cassandra21) |
Amazon | Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge | 44.233.81.188 |
+| [cassandra22](https://ci-cassandra.apache.org/computer/cassandra22) |
Amazon | Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge | 50.112.217.24 |
+| [cassandra23](https://ci-cassandra.apache.org/computer/cassandra23) |
Amazon | Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge | 50.112.240.23 |
+| [cassandra24](https://ci-cassandra.apache.org/computer/cassandra24) |
Amazon | Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge | 52.12.57.190 |
+| [cassandra25](https://ci-cassandra.apache.org/computer/cassandra25) |
Amazon | Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge | 52.27.28.244 |
+| [cassandra26](https://ci-cassandra.apache.org/computer/cassandra26) |
Amazon | Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge | 54.185.77.39 |
+| [cassandra27](https://ci-cassandra.apache.org/computer/cassandra27) |
Amazon | Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge | 54.188.214.16 |
+| [cassandra28](https://ci-cassandra.apache.org/computer/cassandra28) |
Amazon | Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge | 54.190.165.16 |
+| [cassandra29](https://ci-cassandra.apache.org/computer/cassandra29) |
Amazon | Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge | 54.212.144.24 |
+| [cassandra30](https://ci-cassandra.apache.org/computer/cassandra30) |
Amazon | Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge | 54.214.96.70 |
+| [cassandra31](https://ci-cassandra.apache.org/computer/cassandra31) |
Amazon | Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge | 54.71.239.65 |
+| [cassandra32](https://ci-cassandra.apache.org/computer/cassandra32) |
iland | Ubuntu 18.04 LTS amd64, 32G RAM, 16 core | 64.18.213.245 |
+| [cassandra33](https://ci-cassandra.apache.org/computer/cassandra33) |
iland | Ubuntu 18.04 LTS amd64, 32G RAM, 16 core | 64.18.213.246 |
+| [cassandra34](https://ci-cassandra.apache.org/computer/cassandra34) |
iland | Ubuntu 18.04 LTS amd64, 32G RAM, 16 core | 64.18.213.247 |
+| [cassandra35](https://ci-cassandra.apache.org/computer/cassandra35) |
iland | Ubuntu 18.04 LTS amd64, 32G RAM, 16 core | 64.18.213.248 |
+| [cassandra36](https://ci-cassandra.apache.org/computer/cassandra36) |
iland | Ubuntu 18.04 LTS amd64, 32G RAM, 16 core | 64.18.213.249 |
+| [cassandra37](https://ci-cassandra.apache.org/computer/cassandra37) |
DataStax | Ubuntu 18.04 LTS amd64, 32G RAM | 163.172.52.226 |
+| [cassandra38](https://ci-cassandra.apache.org/computer/cassandra38) |
DataStax | Ubuntu 18.04 LTS amd64, 32G RAM | 163.172.52.231 |
+| [cassandra39](https://ci-cassandra.apache.org/computer/cassandra39) |
DataStax | Ubuntu 18.04 LTS amd64, 32G RAM | 163.172.52.232 |
+| [cassandra40](https://ci-cassandra.apache.org/computer/cassandra40) |
DataStax | Ubuntu 18.04 LTS amd64, 32G RAM | 163.172.52.237 |
+| [cassandra41](https://ci-cassandra.apache.org/computer/cassandra41) |
DataStax | Ubuntu 18.04 LTS amd64, 32G RAM | 163.172.52.242 |
+| [cassandra42](https://ci-cassandra.apache.org/computer/cassandra42) |
DataStax | Ubuntu 18.04 LTS amd64, 32G RAM | 163.172.52.245 |
+| [cassandra43](https://ci-cassandra.apache.org/computer/cassandra43) |
DataStax | Ubuntu 18.04 LTS amd64, 32G RAM | 163.172.53.15 |
+| [cassandra44](https://ci-cassandra.apache.org/computer/cassandra44) |
DataStax | Ubuntu 18.04 LTS amd64, 32G RAM | 163.172.53.17 |
+| [cassandra45](https://ci-cassandra.apache.org/computer/cassandra45) |
DataStax | Ubuntu 18.04 LTS amd64, 32G RAM | 163.172.53.59 |
+| [cassandra46](https://ci-cassandra.apache.org/computer/cassandra46) |
DataStax | Ubuntu 18.04 LTS amd64, 32G RAM | 163.172.55.25 |
+| [cassandra47](https://ci-cassandra.apache.org/computer/cassandra47) |
DataStax | Ubuntu 18.04 LTS amd64, 32G RAM | 163.172.55.40 |
+| [cassandra48](https://ci-cassandra.apache.org/computer/cassandra48) |
DataStax | Ubuntu 18.04 LTS amd64, 32G RAM | 163.172.55.49 |
+| [cassandra49](https://ci-cassandra.apache.org/computer/cassandra49) |
DataStax | Ubuntu 18.04 LTS amd64, 32G RAM | 163.172.51.48 |
+| [cassandra-arm1](https://ci-cassandra.apache.org/computer/cassandra-arm1) |
Huawei | Ubuntu 18.04.3 LTS arm64, 32G RAM, 16 core | 114.119.184.236 |
+| [cassandra-arm2](https://ci-cassandra.apache.org/computer/cassandra-arm2) |
Huawei | Ubuntu 18.04.3 LTS arm64, 32G RAM, 16 core | 94.74.91.186 |
+
+
+----
+
+Contacts for system donators, when console hands may be needed by INFRA:
+
+ *Datastax*: Mick Semb Wever <[email protected]>
+
+ *Instaclustr*: Stefan Miklosovic <[email protected]>
+ alternative group list: [email protected]
+
+ *Amazon*: Steve Mayszak [email protected]
+
+ *iland*: Julien Anguenot <[email protected]>
+
+ *Huawei*: Liu Sheng <[email protected]>
+
+----
+
+
+For adding additional infrastructure see
+ https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=127406622
diff --git a/ASF-jenkins-agents.txt b/ASF-jenkins-agents.txt
deleted file mode 100644
index 6137833..0000000
--- a/ASF-jenkins-agents.txt
+++ /dev/null
@@ -1,131 +0,0 @@
-This document is the list of servers and installed software for ASF INFRA.
-
-For adding additional infrastructure see
- https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=127406622
-
-Additional compute resource donations for the Apache Cassandra project are
-appreciated. If you have questions about compute resource donations, ask
-on the dev mailing list <[email protected]>.
-
-The installed OS software is the stock online.net Ubuntu 18.04 LTS amd64 image
-with only their default installation of bind9 removed:
- $ sudo apt-get autoremove --purge bind9
- $ sudo rm -r /var/cache/bind
-
-On AWS you are free to re-use the public AMI `ami-02cd664c0e9899a91
cassandra-jenkins-host-v3`.
-You will find this AMI in region `us-west-2`.
-
-It is highly prefferable to provision nodes in a such way that its reboot nor
shutdown / start will
-change node's IP address. Use Elastic IPs for this. The default limit per
region is 5. You may
-ask for more in console
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-instance-addressing-limit
-
-Edit sudoers to allow INFRA to sudo without password, or provide them with the
password.
-For example, set: %sudo ALL=(ALL:ALL) NOPASSWD:ALL
- $ sudo visudo
-
-Ensure the additional (500GB) data volume is mounted (and added to
`/etc/fstab` at `/home/jenkins`.
-Ensure the root volume is 100GB+.
-Ensure `hostname` is configured to the server's public ip.
-
-Two users need to be added, each with a different public key authorized. The
jenkins user is for the CloudBees master, and the asf999 user is for ASF Infra
maintenance.
-
-Add jenkins user:
- $ sudo groupadd -g 910 jenkins
- $ sudo useradd -m -u 910 -g 910 -s /bin/bash jenkins
-
-Authorize ssh pub key for jenkins user:
- # more info, see
https://github.com/apache/infrastructure-puppet/blob/deployment/data/ubuntu/1404.yaml#L295
- $ sudo mkdir /home/jenkins/.ssh
- $ sudo sh -c "echo 'ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAIEAtxkcKDiPh1OaVzaVdc80daKq2sRy8aAgt8u2uEcLClzMrnv/g19db7XVggfT4+HPCqcbFbO3mtVnUnWWtuSEpDjqriWnEcSj2G1P53zsdKEu9qCGLmEFMgwcq8b5plv78PRdAQn09WCBI1QrNMypjxgCKhNNn45WqV4AD8Jp7/8='
> /home/jenkins/.ssh/authorized_keys"
- $ sudo chown -R jenkins:jenkins /home/jenkins/.ssh
- $ sudo chmod 700 /home/jenkins/.ssh
- $ sudo chmod 600 /home/jenkins/.ssh/authorized_keys
-
-Add asf999 user:
- $ sudo groupadd -g 999 asf999
- $ sudo useradd -m -u 999 -g 999 -s /bin/bash asf999
-
-Authorize ssh pub key for asf999 user:
- # more info, see
https://github.com/apache/infrastructure-puppet/blob/deployment/data/common.yaml#L55
- $ sudo mkdir /home/asf999/.ssh
- $ sudo sh -c "echo 'ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAACAQDKU0OarYDnMtEyneHtOAA/mpeJbXLCVA2yy8wl2fGQ/kzdRhBDCCjusV0D83cwKckJEGVInbYruLwq7Rk4e1k0hwHoVR28ps4B0IrsFlkQrfkS0plGq5VlbUU1lu9hdR+2o992NzK3BGJa6Bde493FaEnJf+s4dQM9kkb9keYXLdh9lC99xlxYg7P5gSlv+0tCAo3LisKM1vVfjLaXIv94KwRNjcrLH0rjrQt0UnkGTjoP+WonILz9CsFfJDncofFp4gyyioYDTqgyGbVauGAdfctrqc+c1x4sz+Hk2ocFjGZEGzHZ8E/ZRXpaa9QNeyc4vKAm9CSWyonLNr3+KyJfQP82w5IZIF8rMBjl3/m0zPUgXSitc6ebrLUFhrESyoFF0RfeqEYUzjf52uRVlPVSiSATmvccdHel/G6lUZrQScYUPO
[...]
- $ sudo chown -R asf999:asf999 /home/asf999/.ssh
- $ sudo chmod 700 /home/asf999/.ssh
- $ sudo chmod 600 /home/asf999/.ssh/authorized_keys
-
-Install and Configure Puppet:
- 1. Ensure the 'asf999' user is added, according to the steps above.
- 2. The asf999 user has sudo no passwd (configured in visudo)
- 3. Installed Puppet 6 (Not Puppet 5 that Bionic would normally install)
and configured the puppet.conf file ready for use
- 3a. wget https://apt.puppetlabs.com/puppet-release-bionic.deb
- 3b. dpkg -i puppet-release-bionic.deb
- 3c. apt-get update
- 3d. apt-get install -y puppet-agent
- 3e. cat >> /etc/puppetlabs/puppet/puppet.conf << EOF
- [main]
- server = pm01-lw-us.apache.org
- EOF
-
-
-
-
-----
-
-Jenkins Agents for ci-cassandra.apache.org:
-
-All have label 'cassandra'. Agents with 32GB+ RAM also have the label
'cassandra-large'.
-
-cassandra1 - 163.172.73.141 - Ubuntu 18.04 LTS amd64, 32G RAM, donated by
Datastax
-cassandra2 - 163.172.73.156 - Ubuntu 18.04 LTS amd64, 32G RAM, donated by
Datastax
-cassandra3 - 163.172.4.20 - Ubuntu 18.04 LTS amd64, 32G RAM, donated by
Datastax
-cassandra4 - 163.172.4.140 - Ubuntu 18.04 LTS amd64, 32G RAM, donated by
Datastax
-cassandra5 - 163.172.4.150 - Ubuntu 18.04 LTS amd64, 32G RAM, donated by
Datastax
-cassandra6 - 163.172.4.175 - Ubuntu 18.04 LTS amd64, 32G RAM, donated by
Datastax
-cassandra7 - 163.172.4.184 - Ubuntu 18.04 LTS amd64, 32G RAM, donated by
Datastax
-cassandra8 - 52.38.142.130 - Ubuntu 18.04 LTS amd64, 32G RAM, m4.2xlarge,
donated by Instaclustr
-cassandra9 - 34.223.128.131 - Ubuntu 18.04 LTS amd64, 32G RAM, m4.2xlarge,
donated by Instaclustr
-cassandra10 - 34.209.95.9 - Ubuntu 18.04 LTS amd64, 32G RAM, m4.2xlarge,
donated by Instaclustr
-cassandra11 - 52.13.31.44 - Ubuntu 18.04 LTS amd64, 32G RAM, m4.2xlarge,
donated by Instaclustr
-cassandra12 - 52.88.147.81 - Ubuntu 18.04 LTS amd64, 32G RAM, m4.2xlarge,
donated by Instaclustr
-cassandra13 - 34.213.143.168 - Ubuntu 18.04 LTS amd64, 32G RAM, m4.2xlarge,
donated by Instaclustr
-cassandra14 - 54.148.1.179 - Ubuntu 18.04 LTS amd64, 32G RAM, m4.2xlarge,
donated by Instaclustr
-cassandra15 - 54.189.131.27 - Ubuntu 18.04 LTS amd64, 32G RAM, m4.2xlarge,
donated by Instaclustr
-cassandra16 - 54.201.88.175 - Ubuntu 18.04 LTS amd64, 32G RAM, m4.2xlarge,
donated by Instaclustr
-cassandra17 - 44.230.121.32 - Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge,
donated by Amazon
-cassandra18 - 44.230.213.15 - Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge,
donated by Amazon
-cassandra19 - 44.231.106.18 - Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge,
donated by Amazon
-cassandra20 - 44.231.194.19 - Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge,
donated by Amazon
-cassandra21 - 44.233.81.188 - Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge,
donated by Amazon
-cassandra22 - 50.112.217.24 - Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge,
donated by Amazon
-cassandra23 - 50.112.240.23 - Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge,
donated by Amazon
-cassandra24 - 52.12.57.190 - Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge,
donated by Amazon
-cassandra25 - 52.27.28.244 - Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge,
donated by Amazon
-cassandra26 - 54.185.77.39 - Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge,
donated by Amazon
-cassandra27 - 54.188.214.16 - Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge,
donated by Amazon
-cassandra28 - 54.190.165.16 - Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge,
donated by Amazon
-cassandra29 - 54.212.144.24 - Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge,
donated by Amazon
-cassandra30 - 54.214.96.70 - Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge,
donated by Amazon
-cassandra31 - 54.71.239.65 - Ubuntu 18.04 LTS amd64, 32G RAM, m5.2xlarge,
donated by Amazon
-cassandra32 - 64.18.213.245 - Ubuntu 18.04 LTS amd64, 32G RAM, 16 core,
donated by iland
-cassandra33 - 64.18.213.246 - Ubuntu 18.04 LTS amd64, 32G RAM, 16 core,
donated by iland
-cassandra34 - 64.18.213.247 - Ubuntu 18.04 LTS amd64, 32G RAM, 16 core,
donated by iland
-cassandra35 - 64.18.213.248 - Ubuntu 18.04 LTS amd64, 32G RAM, 16 core,
donated by iland
-cassandra36 - 64.18.213.249 - Ubuntu 18.04 LTS amd64, 32G RAM, 16 core,
donated by iland
-cassandra-arm1 - 114.119.184.236 - Ubuntu 18.04.3 LTS arm64, 32G RAM, 16
core, donated by Huawei
-cassandra-arm2 - 94.74.91.186 - Ubuntu 18.04.3 LTS arm64, 32G RAM, 16
core, donated by Huawei
-
-
-----
-
-Contacts for system donators, when console hands may be needed by INFRA:
-
- Datastax: Mick Semb Wever <[email protected]>
-
- Instaclustr: Stefan Miklosovic <[email protected]>
- alternative group list: [email protected]
-
- Amazon: [email protected] (Steve Mayszak)
-
- iland: Julien Anguenot <[email protected]>
-
- Huawei: Liu Sheng <[email protected]>
diff --git a/jenkins-dsl/agent-install.sh b/jenkins-dsl/agent-install.sh
new file mode 100644
index 0000000..92bb34d
--- /dev/null
+++ b/jenkins-dsl/agent-install.sh
@@ -0,0 +1,90 @@
+#!/bin/bash
+#
+# This script sets up an Ubuntu 18.04 server to be a ASF Jenkins agent.
+# After this setup is complete, an INFRA jira ticket must be opened for ASF
Infra to complete the process.
+#
+# Script Requirements:
+# * Ubuntu 18.04
+# * run as root
+# * internet access
+#
+# To run the script…
+# 1. ssh into server and allow sudo without password. For example: `%sudo
ALL=(ALL:ALL) NOPASSWD:ALL` in /etc/sudoers
+# 2. scp agent-install.sh <server>:~/
+# 3. ssh <server>
+# 4. sudo bash agent-install.sh
+#
+
+command -v lsb_release >/dev/null 2>&1 || { echo >&2 "Expecting an Ubuntu
server with lsb_release installed"; exit 1; }
+if ! lsb_release -d | grep -q "Ubuntu 18.04" ; then
+ echo "Ubuntu 18.04 expected. Found $(lsb_release -d | cut -d' ' -f2)"
+ exit 1
+fi
+if [ "$EUID" -ne 0 ] ; then
+ echo "Please run as root"
+ exit 1
+fi
+if ! ping -c 1 -q apt.puppetlabs.com >&/dev/null ; then
+ echo "Cannot access apt.puppetlabs.com"
+ exit 1
+fi
+
+# Remove the default installation of bind9
+apt-get -y autoremove --purge bind9
+rm -r /var/cache/bind
+
+apt-get -y install net-tools software-properties-common
+
+# Ensure `hostname` is configured to the server's public ip
+hostname `dig +short myip.opendns.com @resolver1.opendns.com`
+
+# Two users need to be added, each with a different public key authorized.
+# The jenkins user is for the CloudBees master, and the asf999 user is for ASF
Infra maintenance.
+
+# Add jenkins user
+groupadd -g 910 jenkins
+useradd -m -u 910 -g 910 -s /bin/bash jenkins
+mkdir /home/jenkins/.ssh
+usermod -a -G sudo jenkins
+
+# Authorize ssh pub key for jenkins user
+
+sh -c "echo 'ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAIEAtxkcKDiPh1OaVzaVdc80daKq2sRy8aAgt8u2uEcLClzMrnv/g19db7XVggfT4+HPCqcbFbO3mtVnUnWWtuSEpDjqriWnEcSj2G1P53zsdKEu9qCGLmEFMgwcq8b5plv78PRdAQn09WCBI1QrNMypjxgCKhNNn45WqV4AD8Jp7/8='
> /home/jenkins/.ssh/authorized_keys"
+
+chown -R jenkins:jenkins /home/jenkins/.ssh
+chmod 700 /home/jenkins/.ssh
+chmod 600 /home/jenkins/.ssh/authorized_keys
+
+# Add asf999 user
+groupadd -g 999 asf999
+useradd -m -u 999 -g 999 -s /bin/bash asf999
+mkdir /home/asf999/.ssh
+usermod -a -G sudo asf999
+
+# Authorize ssh pub key for asf999 user:
+# more info, see
https://github.com/apache/infrastructure-puppet/blob/deployment/data/common.yaml#L55-L73
+
+sh -c "echo 'ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAACAQDKU0OarYDnMtEyneHtOAA/mpeJbXLCVA2yy8wl2fGQ/kzdRhBDCCjusV0D83cwKckJEGVInbYruLwq7Rk4e1k0hwHoVR28ps4B0IrsFlkQrfkS0plGq5VlbUU1lu9hdR+2o992NzK3BGJa6Bde493FaEnJf+s4dQM9kkb9keYXLdh9lC99xlxYg7P5gSlv+0tCAo3LisKM1vVfjLaXIv94KwRNjcrLH0rjrQt0UnkGTjoP+WonILz9CsFfJDncofFp4gyyioYDTqgyGbVauGAdfctrqc+c1x4sz+Hk2ocFjGZEGzHZ8E/ZRXpaa9QNeyc4vKAm9CSWyonLNr3+KyJfQP82w5IZIF8rMBjl3/m0zPUgXSitc6ebrLUFhrESyoFF0RfeqEYUzjf52uRVlPVSiSATmvccdHel/G6lUZrQScYUPOZT++C7TZN
[...]
+sh -c "echo 'ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAACAQC71HP9YspO1SDZ/5qNJNGE3MW27XiYc5gx2kaCJ2ZT3unZVRU60p3/fbMG5XwOzvmbN3Gzp2l2/8jKmngnQO0oHY9E2ZcVh14TblbgSErVPMM5zZBg40PvDRk61eECnGkXYfVKU5RzcDq5yYr4FFFFRh3pWjjBDBWtSczAXYavWPHOpNpQ1onudiCev/KHADXZS8J/HwhHmkVmxSWX+9upQlPlokXulZpMFqx6FPbBLk45Miq5xSYS3mN8dW3OupDHiKavKoLuzqom+7ndLhFUMX468htnhfUvTs9ajh7xBTfhziPJh+PkjeQLWNLdMQe0L8Ptd4IAxqSkegTCNit/LZbK/Jo6z7sBSdk2N+f8UIlK2do/9KlN30sFbVAK3nsIekxR+xQldEOMaCr83IM/b0G/mefxFrCdSm3z9SW84WKVt+DNADVKUMT
[...]
+sh -c "echo 'ssh-dss
AAAAB3NzaC1kc3MAAACAVaMrsS2AKvOFn4RZjBWxrwF3NxJ6jvy3ZJhbd+LH/JigL1J6o26Z5AV8HsfhOuVqj6kPaIAJ3bwaMjHrzl4nkFDS3QXDD3psrZbMtqIaugwzNOY7WDsHF0sfr6A/PoktNkoXF/BPqByx9DJ7UKq2+MP9LTj9r7Nzb5nS5L+dwDUAAAAVAI6xcksdw9IsgHW8LUeWSS+pGeXzAAAAgDhIVTB7UgFhX8Qjm/IdKVvR6hjYJ04HQnTqsnDzM2ju/Di4ATpogsUunnI7ZsBgOPF/moAzBlK+r+4621ggAW1xfRysvJYtqS0IYmyLPWryIb2xK4i6bagYhjtD2YAJbFuYmZHfyCUf82MVgqPeRRn9BWzCVzvA+7+K1rj5RlvUAAAAgBWbDECq37AFDQuMHRJiTAYJQLVBtfx3Fr/XbgkcX7DMPLXooDIAJWpqtyyfxYRHC4K
[...]
+sh -c "echo 'ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEAn5MYIbWTJB6ni69vgMUJXqexctL5KTG9yAP6nfas2Akdu6GAO0fL1cCGq/TV/0LKWM/XeSkdZMo1LxqsmJZpp9BvcDYEmUhR31N+eQE1SPf8qrtFJFAN1GbmMxYwiYbAO+4zjJu+YLV0zUeSMZX56pCpbd4kaDLgY8rXzUbo934e2s5AdKHUKh65gzMwP9gzyeq02/jEfET2VSN7Xz0mqxbF47+81beQZuxySfO1M68mFLQavSt6J/E90M9ljy/oylGTTUnmZlmcxk4smuN2V8YzZsJHkGB9bh0bK5xHqci9QRmSA4nxprNL6bqpnUHtYtNQsvPrTlyEFD28qePQEQ==
cml' >> /home/asf999/.ssh/authorized_keys"
+sh -c "echo 'ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEAtqqDXzCNpuQvr3yJa1XbhHDTW/hRwGMZCbninWxwWsd/E7QkuCdstBT2iGihbizbZlnh0mchjtvhouIADkbCyizvtRdujl0Vi1pg5i6YOKKkFc5/s2BRoqsrj0FLu7d2/oHddOz2DO1B8nfGfVyC9mxcqKVpOaGqfdcalLrAH60e7MmH9FkrEVMHQIgGaq1J9W0FFczcxrsCEu5FxXaFTGEos1BmnnsrdtCmQhSJ2n41cngZxrj+yy/HJSj++aDJ2HCwyvRnOX6PX7iNtLyRDX947+A4VbCRQtAC7IbccKHvTGTHSzBXs6PUNUEleZi5VHA6Xm4ubVNiNLwmGYlthw==
[email protected]' >> /home/asf999/.ssh/authorized_keys"
+sh -c "echo 'ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAACAQDJivoCwPuWBhdeg/e/OcmfRkDLX3DTJPdiRJd3XbHP4QP+yjDeBqq57O956UEk1qoG/JGQx3vOXk96oSTFKpOJcZopZ2Dg1lJAWWccKompkrUGP0R8lb8Ki9VWf1TujNagDuDzxt9jruwW5jEeG1iOhgu0J0Qufd1up6Q5yvBE5dohpZ2OOhZennIudWOXqRduUVuNR6J5umfRVSPbg1bJXjjvwC5aeNGCJdH/NEp71+n7YjSfavoHbG8y3B3OvwJq3xQMqW5LZz0oxfpriIbBITzG8LO09TNnPLXc+CqGuMyqFHcv7KhhtQiA6oTom/9/Ylsg1HVmGxS/ARMW53czld8iVMFFdGGAs4Y3tV9glokG8JTaekYLTQoTJH41ZtF8gDXpabxrsfUQUDuETlpMJ+21U1xnwahMaMQzNL5+Kq2/KOc+qmLzrk4
[...]
+sh -c "echo 'ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDr8lZ/ACqhAQjZIsZJy/WswWW4hmlwEG7kr3t4+NCMj/8CI4AaLTTZJpOVW5u52gvJnEsMnp2ZLqZhaeWSa/m6SnNlzKqqe16DXP7ngq56qD8KjTnxnb5HNrqYiJJhLXpmd/fm89yOq8k4Tv4bOQzL0bgCA6xBxWFuZ8TPaUCNcXxidLqe2W8gQx4AffhFjrPdQPKnhVQ8pcC5dlpi17cBKHCTSdVM0wT7pLGMULTVbD25yHPtCI/jp47AGKE9IMYYxDlFVnePtWU19lRqjn4gjsv3dVYUhCibXyrz6RAxCZwXhK+5Et4uPcdttMO56wyxXC3lijTETvQX2rIkc4WX
warwalrux@warwalrux-XPS-15-9570' >> /home/asf999/.ssh/authorized_keys"
+
+chown -R asf999:asf999 /home/asf999/.ssh
+chmod 700 /home/asf999/.ssh
+chmod 600 /home/asf999/.ssh/authorized_keys
+
+# Install Puppet 6 (not Puppet 5 that Bionic would normally install) and
configured the puppet.conf file ready for use
+wget https://apt.puppetlabs.com/puppet-release-bionic.deb
+dpkg -i puppet-release-bionic.deb
+rm puppet-release-bionic.deb
+apt-get update
+apt-get install -y puppet-agent
+
+sh -c 'cat >> /etc/puppetlabs/puppet/puppet.conf << EOF
+[main]
+server = pm01-lw-us.apache.org
+EOF'
+
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]