diff --git a/.github/workflows/ansibleOnServer.yml b/.github/workflows/ansibleOnServer.yml index 78638c1..9ebc64b 100644 --- a/.github/workflows/ansibleOnServer.yml +++ b/.github/workflows/ansibleOnServer.yml @@ -7,7 +7,19 @@ on: description: 'Ansible file to run' required: true type: string - + secrets: + SERVER_SSH_PRIVATE_KEY: + description: 'SSH private key for server' + required: true + SERVER_IP_ADDRESS: + description: 'IP address of server' + required: true + SERVER_USER: + description: 'User on server' + required: true + SERVER_USER_PASSWORD: + description: 'Password of user on server' + required: true jobs: ansibleOnServer: @@ -21,18 +33,28 @@ jobs: with: python-version: '3.x' + - name: Cache pip + uses: actions/cache@v2 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} + restore-keys: | + ${{ runner.os }}-pip + - name: Install Ansible run: | python -m pip install --upgrade pip - pip install ansible + pip install -r server/provision/requirements.txt - name: Set up SSH key run: | mkdir -p ~/.ssh echo "${{ secrets.SERVER_SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa - ssh-keyscan -H {{ secrets.SERVER_IP_ADDRESS }} >> ~/.ssh/known_hosts + ssh-keyscan -H ${{ secrets.SERVER_IP_ADDRESS }} >> ~/.ssh/known_hosts + eval "$(ssh-agent -s)" + ssh-add ~/.ssh/id_rsa - name: Run Ansible run: | - ansible-playbook --inventory inventory_for_ci.yml --extra-vars "remote_server_user=${{ secrets.SERVER_USER }} remote_server_password=${{ secrets.SERVER_USER_PASSWORD }}" ${{ inputs.ansible_file }} \ No newline at end of file + ansible-playbook --inventory server/provision/inventory_for_ci.yml --extra-vars "remote_server_user=${{ secrets.SERVER_USER }} remote_server_password=${{ secrets.SERVER_USER_PASSWORD }}" ${{ inputs.ansible_file }} \ No newline at end of file diff --git a/.github/workflows/provisionServer.yml b/.github/workflows/provisionServer.yml index ef632a5..58f0722 100644 --- a/.github/workflows/provisionServer.yml +++ b/.github/workflows/provisionServer.yml @@ -4,17 +4,11 @@ on: workflow_dispatch jobs: provisionServer: - runs-on: ubuntu-latest - steps: - - name: ProvisionServer - uses: ./.github/workflows/ansibleOnServer.yml@main - with: - ansible_file: 'provision/provisionServer.yml' - - startContainers: - runs-on: ubuntu-latest - steps: - - name: StartContainers - uses: ./.github/workflows/ansibleOnServer.yml@main - with: - ansible_file: 'provision/startContainers.yml' + uses: ./.github/workflows/ansibleOnServer.yml + with: + ansible_file: 'server/provision/provisionServer.yml' + secrets: + SERVER_SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_PRIVATE_KEY }} + SERVER_IP_ADDRESS: ${{ secrets.SERVER_IP_ADDRESS }} + SERVER_USER: ${{ secrets.SERVER_USER }} + SERVER_USER_PASSWORD: ${{ secrets.SERVER_USER_PASSWORD }} diff --git a/.github/workflows/startContainersOnServer.yml b/.github/workflows/startContainersOnServer.yml index 9526836..ae4ebd1 100644 --- a/.github/workflows/startContainersOnServer.yml +++ b/.github/workflows/startContainersOnServer.yml @@ -4,9 +4,11 @@ on: workflow_dispatch jobs: provisionServer: - runs-on: ubuntu-latest - steps: - - name: ProvisionServer - uses: ./.github/workflows/ansibleOnServer.yml@main - with: - ansible_file: 'provision/startContainers.yml' + uses: ./.github/workflows/ansibleOnServer.yml + with: + ansible_file: 'server/provision/startContainers.yml' + secrets: + SERVER_SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_PRIVATE_KEY }} + SERVER_IP_ADDRESS: ${{ secrets.SERVER_IP_ADDRESS }} + SERVER_USER: ${{ secrets.SERVER_USER }} + SERVER_USER_PASSWORD: ${{ secrets.SERVER_USER_PASSWORD }} diff --git a/server/provision/requirements.txt b/server/provision/requirements.txt new file mode 100644 index 0000000..cabb1f5 --- /dev/null +++ b/server/provision/requirements.txt @@ -0,0 +1 @@ +ansible \ No newline at end of file