diff --git a/.gitlab/.gitlab-ci.yml b/.gitlab/.gitlab-ci.yml index a3599bbe7..bf210f5a9 100644 --- a/.gitlab/.gitlab-ci.yml +++ b/.gitlab/.gitlab-ci.yml @@ -176,6 +176,11 @@ build container fb: - docker push $tag - echo Created docker featurebase image with tag "$tag" +before_script: + - aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID + - aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY + - aws configure set region "us-east-2" + deploy node for linux amd64: stage: lint image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest @@ -185,14 +190,9 @@ deploy node for linux amd64: SECURITY_GROUP: "" SUBNET_ID: "" PUBLIC_IP: "" - AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID - AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY PROFILE: "default" AWS_SSH_PRIVATE_KEY: $AWS_SSH_PRIVATE_KEY before_script: - - aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID - - aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY - - aws configure set region "us-east-2" - aws configure set aws_profile $PROFILE - echo $AWS_SSH_PRIVATE_KEY > gitlab-featurebase-dev.pem - chmod 400 gitlab-featurebase-dev.pem @@ -214,6 +214,7 @@ deploy node for linux amd64: - echo $INSTANCE_ID > linux-amd64-instance.txt - echo $INSTANCE_ID - scp -i gitlab-featurebase-dev.pem featurebase_linux_amd64 ec2-user@$PUBLIC_IP:. + - scp -i gitlab-featurebase-dev.pem .gitlab/featurebase.conf .gitlab/featurebase.service ec2-user@$PUBLIC_IP:. - sleep 120 needs: job: build for linux amd64 @@ -221,17 +222,27 @@ deploy node for linux amd64: paths: - linux-amd64-instance.txt +run featurebase in linux amd64 node: + stage: lint + image: + variables: + INSTANCE_ID: "" + before_script: + - INSTANCE_ID=$(cat linux-amd64-instance.txt) + script: + - aws ssm send-command --document-name "AWS-RunShellScript" --targets InstanceIds=$INSTANCE_ID --cli-input-json file://.gitlab/configureFeatureBase.json + needs: + job: + deploy node for linux amd64 + terminate node for linux amd64: stage: lint image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest variables: INSTANCE_ID: "" before_script: - - aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID - - aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY - - aws configure set region "us-east-2" - INSTANCE_ID=$(cat linux-amd64-instance.txt) script: - aws ec2 terminate-instances --instance-ids $INSTANCE_ID needs: - job: deploy node for linux amd64 + job: run featurebase in linux amd64 node diff --git a/.gitlab/cloud-init.sh b/.gitlab/cloud-init.sh index 18257a90b..f9f289582 100755 --- a/.gitlab/cloud-init.sh +++ b/.gitlab/cloud-init.sh @@ -4,7 +4,6 @@ exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1 # Install packages yum update -y -# yum install golang -y # latest verion in ec2 is 1.15.14 yum install postgresql -y # Configure host system @@ -13,7 +12,8 @@ sysctl -w fs.file-max=262144 sysctl -p echo 'cat /proc/sys/fs/file-max' -# install go 1.16.9 +# yum install golang -y # latest verion in ec2 is 1.15.14 +# install go 1.16.9 manually curl -O https://dl.google.com/go/go1.16.9.linux-amd64.tar.gz tar xvf go1.16.9.linux-amd64.tar.gz chown -R root:root ./go diff --git a/.gitlab/configureFeatureBase.json b/.gitlab/configureFeatureBase.json new file mode 100644 index 000000000..569b6d0bd --- /dev/null +++ b/.gitlab/configureFeatureBase.json @@ -0,0 +1,20 @@ +{ + "Parameters": { + "commands": [ + "#!/bin/bash", + "mv featurebase_linux_amd64 /usr/local/bin/", + "mv featurebase.conf /etc/", + "mv featurebase.service /etc/systemd/system/", + "adduser molecula", + "sudo mkdir /var/log/molecula", + "sudo chown molecula /var/log/molecula", + "sudo mkdir -p /opt/molecula/featurebase", + "sudo chown molecula /opt/molecula/featurebase", + "systemctl daemon-reload", + "sudo systemctl start featurebase", + "sudo systemctl enable featurebase", + "sudo systemctl status featurebase", + "curl localhost:10101" + ] + } +} \ No newline at end of file diff --git a/.gitlab/featurebase.conf b/.gitlab/featurebase.conf new file mode 100644 index 000000000..7716d0f6b --- /dev/null +++ b/.gitlab/featurebase.conf @@ -0,0 +1,30 @@ +name = "pilosa1" +bind = "0.0.0.0:10101" +bind-grpc = "0.0.0.0:20101" + +data-dir = "/opt/molecula/featurebase" +log-path = "/var/log/molecula/featurebase.log" + +max-file-count=900000 +max-map-count=900000 + +long-query-time = "10s" + +[postgres] + + bind = "localhost:55432" + +[cluster] + + name = "cluster1" + replicas = 1 + +[etcd] + + listen-client-address = "http://localhost:10401" + listen-peer-address = "http://localhost:10301" + initial-cluster = "pilosa1=http://localhost:10301" + +[metric] + + service = "prometheus" \ No newline at end of file diff --git a/.gitlab/featurebase.service b/.gitlab/featurebase.service new file mode 100644 index 000000000..a543b92af --- /dev/null +++ b/.gitlab/featurebase.service @@ -0,0 +1,13 @@ +# Not Ansible managed + +[Unit] +Description="Service for FeatureBase" + +[Service] +RestartSec=30 +Restart=on-failure +EnvironmentFile= +User=molecula +ExecStart=/usr/local/bin/featurebase server -c /etc/featurebase.conf + +[Install] \ No newline at end of file