iac_modules/.github/example/pulumi-cloud-resource-postgresql.yml
2023-06-28 15:52:15 +08:00

68 lines
1.9 KiB
YAML

name: setup postgresql
on:
workflow_dispatch:
branches: [ 'main' ]
env:
DNS_AK: ${{ secrets.DNS_AK }}
DNS_SK: ${{ secrets.DNS_SK }}
SSH_PUBLIC_KEY: ${{ secrets.SSH_PUBLIC_KEY }}
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_KEY }}
PULUMI_CONFIG_PASSPHRASE: ${{ secrets.PULUMI_PASS }}
PULUMI_DISABLE_CI_DETECTION: true
AWS_REGION: ap-east-1
defaults:
run:
working-directory: ./playbook
jobs:
postgresql:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: run playbook
shell: bash
run: |
export ANSIBLE_HOST_KEY_CHECKING=False
sudo apt install jq ansible -y
sudo rm -rvf /home/runner/.pulumi/
curl -o setup.sh https://get.pulumi.com && sh setup.sh --version 3.57.0
pulumi login s3://pulumi-status
pulumi stack select dev
db_server_public_ip=`pulumi stack output --json | jq '.db_server_public_ip'`
k3s_server_public_ip=`pulumi stack output --json | jq '.k3s_server_public_ip'`
mkdir -pv ~/.ssh/
cat > ~/.ssh/id_rsa << EOF
${SSH_PRIVATE_KEY}
EOF
sudo chmod 0400 ~/.ssh/id_rsa
md5sum ~/.ssh/id_rsa
cat > hosts/inventory << EOF
[master]
k3s-server ansible_host=$k3s_server_public_ip
[node]
db-server ansible_host=$db_server_public_ip
[all:vars]
ansible_port=22
ansible_ssh_user=ubuntu
ansible_ssh_private_key_file=~/.ssh/id_rsa
ansible_host_key_checking=False
dns_ak=$DNS_AK
dns_sk=$DNS_SK
lb_ip=$k3s_server_public_ip
EOF
ansible-playbook -i hosts/inventory jobs/init_postgresql -D