Skip to content

Update setup-runner.yml #10

Update setup-runner.yml

Update setup-runner.yml #10

Workflow file for this run

name: Terraform Deploy Workflow
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
terraform:
runs-on: ubuntu-latest
steps:
# Checkout the code
- name: Checkout code
uses: actions/checkout@v2
# Setup Terraform
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_version: 1.9.8
- name: Initialize Terraform
env:
LINUX_HOST: ${{ secrets.LINUX_HOST }}
LINUX_PORT: ${{ secrets.LINUX_PORT }}
LINUX_USER: ${{ secrets.LINUX_USER }}
LINUX_PASSWORD: ${{ secrets.LINUX_PASSWORD }}
RUNNER_PASSWORD: ${{ secrets.RUNNER_PASSWORD }}
run: terraform init
- name: Apply Terraform Plan
env:
TF_VAR_linux_host: ${{ secrets.LINUX_HOST }}
TF_VAR_linux_port: ${{ secrets.LINUX_PORT }}
TF_VAR_linux_user: ${{ secrets.LINUX_USER }}
TF_VAR_linux_password: ${{ secrets.LINUX_PASSWORD }}
TF_VAR_runner_password: ${{ secrets.RUNNER_PASSWORD }}
run: terraform apply -auto-approve
# Securely pass variables for sensitive information
- name: Set Environment Variables
run: |
echo "TF_VAR_linux_host=${{ secrets.LINUX_HOST }}" >> $GITHUB_ENV
echo "TF_VAR_linux_user=${{ secrets.LINUX_USER }}" >> $GITHUB_ENV
echo "TF_VAR_linux_password=${{ secrets.LINUX_PASSWORD }}" >> $GITHUB_ENV
echo "TF_VAR_linux_port=${{ secrets.LINUX_PORT }}" >> $GITHUB_ENV
echo "TF_VAR_runner_password=${{ secrets.RUNNER_PASSWORD }}" >> $GITHUB_ENV
- name: Set up SSH connection and configure runner
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.LINUX_HOST }} # The remote Linux host
username: ${{ secrets.LINUX_USER }} # SSH username
password: ${{ secrets.LINUX_PASSWORD }} # SSH password
port: ${{ secrets.LINUX_PORT }} # The SSH port (usually 22)
script: |
# 1. Create 'runner' user if it doesn't exist
id -u runner || sudo useradd -m runner
echo 'runner:${{ secrets.RUNNER_PASSWORD }}' | sudo chpasswd # Set runner's password securely
# 2. Install required dependencies
sudo apt update && sudo apt install -y curl tar
# 3. Switch to runner user and set up GitHub Actions Runner
sudo su - runner -c "
mkdir -p ~/actions-runner && cd ~/actions-runner &&
curl -o actions-runner-linux-x64-2.320.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.320.0/actions-runner-linux-x64-2.320.0.tar.gz &&
echo '93ac1b7ce743ee85b5d386f5c1787385e07b3d7c728ff66e0d3813d5f46900 actions-runner-linux-x64-2.320.0.tar.gz' | shasum -a 256 -c &&
tar xzf ./actions-runner-linux-x64-2.320.0.tar.gz &&
./config.sh --url https://github.com/swarmmauri/swarmmauri-sdk --token ${{ secrets.RUNNER_TOKEN }} &&
./svc.sh install &&
./svc.sh start
"