2022-11-12 08:39:14pm
This commit is contained in:
parent
8606c427fb
commit
935251e8ac
4 changed files with 54 additions and 72 deletions
|
|
@ -1,11 +1,12 @@
|
||||||
FROM centos:7
|
FROM debian:10
|
||||||
|
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt-get install -y curl
|
||||||
|
|
||||||
ARG GOVERSION=
|
ARG GOVERSION=
|
||||||
|
|
||||||
RUN curl -fsSL "https://go.dev/dl/go$GOVERSION.tar.gz" >/tmp/go.tar.gz
|
RUN curl -fsSL "https://go.dev/dl/go$GOVERSION.tar.gz" >/tmp/go.tar.gz
|
||||||
RUN tar -C /usr/local -xzf /tmp/go.tar.gz
|
RUN tar -C /usr/local -xzf /tmp/go.tar.gz
|
||||||
|
|
||||||
ENV PATH="/usr/local/go/bin:$PATH"
|
ENV PATH="/usr/local/go/bin:$PATH"
|
||||||
|
|
||||||
RUN yum install -y rsync
|
RUN apt-get install -y build-essential
|
||||||
RUN yum groupinstall -y 'Development Tools'
|
RUN apt-get install -y rsync
|
||||||
|
|
|
||||||
16
ci/release/builders/Dockerfile-centos
Normal file
16
ci/release/builders/Dockerfile-centos
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
FROM centos:7
|
||||||
|
|
||||||
|
ARG GOVERSION=
|
||||||
|
|
||||||
|
RUN curl -fsSL "https://go.dev/dl/go$GOVERSION.tar.gz" >/tmp/go.tar.gz
|
||||||
|
RUN tar -C /usr/local -xzf /tmp/go.tar.gz
|
||||||
|
|
||||||
|
ENV PATH="/usr/local/go/bin:$PATH"
|
||||||
|
|
||||||
|
RUN yum install -y rsync wget
|
||||||
|
RUN yum groupinstall -y 'Development Tools'
|
||||||
|
|
||||||
|
RUN curl -fsSL https://ftp.gnu.org/gnu/gcc/gcc-5.2.0/gcc-5.2.0.tar.gz >/tmp/gcc.tar.gz
|
||||||
|
RUN tar -C /usr/local -xzf /tmp/gcc.tar.gz
|
||||||
|
RUN cd /usr/local/gcc-5.2.0 && ./contrib/download_prerequisites && mkdir -p build \
|
||||||
|
&& cd build && ../configure --disable-multilib && make && make install
|
||||||
|
|
@ -7,7 +7,7 @@ help() {
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
usage: $0 [--dryrun]
|
usage: $0 [--dryrun]
|
||||||
|
|
||||||
$0 creates the d2 builders in a AWS account.
|
$0 creates and ensures the d2 builders in AWS.
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -38,10 +38,11 @@ main() {
|
||||||
flag_errusage "no arguments are accepted"
|
flag_errusage "no arguments are accepted"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
create_aws
|
create_rhosts
|
||||||
|
init_rhosts
|
||||||
}
|
}
|
||||||
|
|
||||||
create_aws() {
|
create_rhosts() {
|
||||||
KEY_NAME=$(aws ec2 describe-key-pairs | jq -r .KeyPairs[0].KeyName)
|
KEY_NAME=$(aws ec2 describe-key-pairs | jq -r .KeyPairs[0].KeyName)
|
||||||
VPC_ID=$(aws ec2 describe-vpcs | jq -r .Vpcs[0].VpcId)
|
VPC_ID=$(aws ec2 describe-vpcs | jq -r .Vpcs[0].VpcId)
|
||||||
|
|
||||||
|
|
@ -73,7 +74,7 @@ create_aws() {
|
||||||
sh_c aws ec2 run-instances \
|
sh_c aws ec2 run-instances \
|
||||||
--image-id=ami-0d593311db5abb72b \
|
--image-id=ami-0d593311db5abb72b \
|
||||||
--count=1 \
|
--count=1 \
|
||||||
--instance-type=t2.micro \
|
--instance-type=t2.small \
|
||||||
--security-groups=ssh \
|
--security-groups=ssh \
|
||||||
"--key-name=$KEY_NAME" \
|
"--key-name=$KEY_NAME" \
|
||||||
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=d2-builder-linux-amd64}]' \
|
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=d2-builder-linux-amd64}]' \
|
||||||
|
|
@ -84,7 +85,8 @@ create_aws() {
|
||||||
--filters 'Name=instance-state-name,Values=pending,running,shutting-down,stopping,stopped' 'Name=tag:Name,Values=d2-builder-linux-amd64' \
|
--filters 'Name=instance-state-name,Values=pending,running,shutting-down,stopping,stopped' 'Name=tag:Name,Values=d2-builder-linux-amd64' \
|
||||||
| jq -r '.Reservations[].Instances[].PublicDnsName')
|
| jq -r '.Reservations[].Instances[].PublicDnsName')
|
||||||
if [ -n "$dnsname" ]; then
|
if [ -n "$dnsname" ]; then
|
||||||
log "TSTRUCT_LINUX_AMD64_BUILDER=$dnsname"
|
log "TSTRUCT_LINUX_AMD64_BUILDER=ec2-user@$dnsname"
|
||||||
|
export TSTRUCT_LINUX_AMD64_BUILDER=ec2-user@$dnsname
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
@ -97,7 +99,7 @@ create_aws() {
|
||||||
sh_c aws ec2 run-instances \
|
sh_c aws ec2 run-instances \
|
||||||
--image-id=ami-0efabcf945ffd8831 \
|
--image-id=ami-0efabcf945ffd8831 \
|
||||||
--count=1 \
|
--count=1 \
|
||||||
--instance-type=t4g.nano \
|
--instance-type=t4g.small \
|
||||||
--security-groups=ssh \
|
--security-groups=ssh \
|
||||||
"--key-name=$KEY_NAME" \
|
"--key-name=$KEY_NAME" \
|
||||||
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=d2-builder-linux-arm64}]' \
|
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=d2-builder-linux-arm64}]' \
|
||||||
|
|
@ -108,11 +110,34 @@ create_aws() {
|
||||||
--filters 'Name=instance-state-name,Values=pending,running,shutting-down,stopping,stopped' 'Name=tag:Name,Values=d2-builder-linux-arm64' \
|
--filters 'Name=instance-state-name,Values=pending,running,shutting-down,stopping,stopped' 'Name=tag:Name,Values=d2-builder-linux-arm64' \
|
||||||
| jq -r '.Reservations[].Instances[].PublicDnsName')
|
| jq -r '.Reservations[].Instances[].PublicDnsName')
|
||||||
if [ -n "$dnsname" ]; then
|
if [ -n "$dnsname" ]; then
|
||||||
log "TSTRUCT_LINUX_AMD64_BUILDER=$dnsname"
|
log "TSTRUCT_LINUX_ARM64_BUILDER=ec2-user@$dnsname"
|
||||||
|
export TSTRUCT_LINUX_ARM64_BUILDER=ec2-user@$dnsname
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
sleep 5
|
sleep 5
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
init_rhosts() {
|
||||||
|
header linux-amd64
|
||||||
|
RHOST=$TSTRUCT_LINUX_AMD64_BUILDER init_rhost
|
||||||
|
header linux-arm64
|
||||||
|
RHOST=$TSTRUCT_LINUX_ARM64_BUILDER init_rhost
|
||||||
|
}
|
||||||
|
|
||||||
|
init_rhost() {
|
||||||
|
while true; do
|
||||||
|
if sh_c ssh "$RHOST" :; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
sh_c ssh "$RHOST" 'sudo yum upgrade -y'
|
||||||
|
sh_c ssh "$RHOST" 'sudo yum install -y docker'
|
||||||
|
sh_c ssh "$RHOST" 'sudo systemctl start docker'
|
||||||
|
sh_c ssh "$RHOST" 'sudo systemctl enable docker'
|
||||||
|
sh_c ssh "$RHOST" 'sudo usermod -a -G docker ec2-user'
|
||||||
|
sh_c ssh "$RHOST" 'sudo reboot' || true
|
||||||
|
}
|
||||||
|
|
||||||
main "$@"
|
main "$@"
|
||||||
|
|
@ -1,60 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
set -eu
|
|
||||||
cd -- "$(dirname "$0")/../../.."
|
|
||||||
. ./ci/sub/lib.sh
|
|
||||||
|
|
||||||
help() {
|
|
||||||
cat <<EOF
|
|
||||||
usage: $0 [--dryrun]
|
|
||||||
|
|
||||||
$0 inits the D2 builders by installing docker.
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
main() {
|
|
||||||
unset DRYRUN
|
|
||||||
while :; do
|
|
||||||
flag_parse "$@"
|
|
||||||
case "$FLAG" in
|
|
||||||
h|help)
|
|
||||||
help
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
dryrun)
|
|
||||||
flag_noarg
|
|
||||||
DRYRUN=1
|
|
||||||
shift "$FLAGSHIFT"
|
|
||||||
;;
|
|
||||||
'')
|
|
||||||
shift "$FLAGSHIFT"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
flag_errusage "unrecognized flag $FLAGRAW"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
if [ $# -gt 0 ]; then
|
|
||||||
flag_errusage "no arguments are accepted"
|
|
||||||
fi
|
|
||||||
|
|
||||||
init_aws
|
|
||||||
}
|
|
||||||
|
|
||||||
init_aws() {
|
|
||||||
header linux-amd64
|
|
||||||
# RHOST=$TSTRUCT_LINUX_AMD64_BUILDER init_rhost
|
|
||||||
header linux-arm64
|
|
||||||
RHOST=$TSTRUCT_LINUX_ARM64_BUILDER init_rhost
|
|
||||||
}
|
|
||||||
|
|
||||||
init_rhost() {
|
|
||||||
sh_c ssh "$RHOST" 'sudo yum upgrade -y'
|
|
||||||
sh_c ssh "$RHOST" 'sudo yum install -y docker'
|
|
||||||
sh_c ssh "$RHOST" 'sudo systemctl start docker'
|
|
||||||
sh_c ssh "$RHOST" 'sudo systemctl enable docker'
|
|
||||||
sh_c ssh "$RHOST" 'sudo usermod -a -G docker ec2-user'
|
|
||||||
sh_c ssh "$RHOST" 'sudo reboot' || true
|
|
||||||
}
|
|
||||||
|
|
||||||
main "$@"
|
|
||||||
Loading…
Reference in a new issue