From 57e9826bc5de375b2d84b8a24af4fb7fc5971ade Mon Sep 17 00:00:00 2001 From: Alberto Lerda Date: Mon, 3 Oct 2022 21:24:27 +0200 Subject: [PATCH] First deployment --- .env.example | 2 ++ .github/workflows/release.yaml | 15 ++++++++++ devops/Makefile | 9 ++++++ devops/hosts.toml | 1 + devops/install-proxy.yml | 54 ++++++++++++++++++++++++++++++++++ main.go | 6 +++- 6 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 .env.example create mode 100644 .github/workflows/release.yaml create mode 100644 devops/Makefile create mode 100644 devops/hosts.toml create mode 100644 devops/install-proxy.yml diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..4fa53da --- /dev/null +++ b/.env.example @@ -0,0 +1,2 @@ +export HERE_API=YOUR API KEY +export PORT=8080 diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..180a289 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,15 @@ +on: + release: + types: [created] + +jobs: + release-linux-amd64: + name: release linux/amd64 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: wangyoucao577/go-release-action@v1.32 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + goos: linux + goarch: amd64 diff --git a/devops/Makefile b/devops/Makefile new file mode 100644 index 0000000..8330556 --- /dev/null +++ b/devops/Makefile @@ -0,0 +1,9 @@ +ANSIPLAY = ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook --inventory hosts.toml --ssh-common-args '-o StrictHostKeyChecking=accept-new -o IdentitiesOnly=yes' --private-key ./sshkey $(1) + +##@ General +help: ## Display this help. + @awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' Makefile + +##@ Server management +install: ## Install controller + $(call ANSIPLAY, install-proxy.yml) diff --git a/devops/hosts.toml b/devops/hosts.toml new file mode 100644 index 0000000..ede950f --- /dev/null +++ b/devops/hosts.toml @@ -0,0 +1 @@ +116.203.117.144 ansible_port=22010 diff --git a/devops/install-proxy.yml b/devops/install-proxy.yml new file mode 100644 index 0000000..03c2c75 --- /dev/null +++ b/devops/install-proxy.yml @@ -0,0 +1,54 @@ +--- +- name: Create non root user + hosts: all + remote_user: root + tasks: + - name: Add the user 'proxy' + ansible.builtin.user: + name: proxy + shell: /bin/bash + - name: Create .ssh directory + file: + path: /home/proxy/.ssh + state: directory + owner: proxy + group: proxy + - name: Set authorized keys for user controller + copy: + src: /root/.ssh/authorized_keys + remote_src: true + dest: /home/controller/.ssh/authorized_keys + owner: controller + group: controller +- name: Install zenflows proxy + hosts: all + remote_user: root + become_user: proxy + become_method: su + tasks: + - name: Install package dependencies + ansible.builtin.package: + name: + - nginx + - tmux + state: latest + - name: Build app + command: make + args: + chdir: .. + delegate_to: localhost + - name: copy executable + copy: + dest: "/zf-proxy" + src: "../zf-proxy" + owner: proxy + group: proxy + - name: copy executable + copy: + dest: "/.env" + src: "../.env.production" + owner: proxy + group: proxy + - name: run proxy + # become: true + command: tmux new-session -d -s zenflows-proxy "source /.env && /zf-proxy" diff --git a/main.go b/main.go index dacd971..c05e531 100644 --- a/main.go +++ b/main.go @@ -118,7 +118,11 @@ func main() { for i := 0; i