edit install script to install openvpn3 #61
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Ansible Installation | |
on: | |
push: | |
branches: | |
- main | |
jobs: | |
deploy: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out the codebase. | |
uses: actions/checkout@v2 | |
- name: Install OpenVPN | |
run: | | |
sudo apt-get update | |
sudo apt-get --assume-yes --no-install-recommends install openvpn3 apt-transport-https curl | |
sudo mkdir -p /etc/apt/keyrings && curl -fsSL https://packages.openvpn.net/packages-repo.gpg | sudo tee /etc/apt/keyrings/openvpn.asc | |
DISTRO=$(lsb_release -c | awk '{print $2}') | |
echo "deb [signed-by=/etc/apt/keyrings/openvpn.asc] https://packages.openvpn.net/openvpn3/debian $DISTRO main" | sudo tee /etc/apt/sources.list.d/openvpn-packages.list | |
sudo apt install openvpn3 | |
- name: Setup VPN config | |
run: | | |
echo -n "${{ secrets.VPN_CONFIG }}" | base64 -d > config.ovpn | |
- name: Connect VPN | |
run: sudo openvpn3 session-start --dco true --config config.ovpn --background | |
- name: Wait for a VPN connection | |
timeout-minutes: 1 | |
run: until ping -c1 192.168.0.2; do sleep 2; done | |
- name: Ping local servers (test) | |
run: | | |
ping 192.168.0.2 -c5 | |
ping 192.168.0.3 -c5 | |
ping 192.168.0.4 -c5 | |
ping 192.168.0.5 -c5 | |
ping 192.168.0.6 -c5 | |
ping 192.168.0.7 -c5 | |
ping 192.168.0.8 -c5 | |
ping 192.168.0.9 -c5 | |
ping 192.168.0.10 -c5 | |
- name: Run playbook | |
uses: dawidd6/action-ansible-playbook@v2 | |
with: | |
# Required, playbook filepath | |
playbook: install.yml | |
# Directory where playbooks live | |
directory: playbooks/ | |
# SSH private key | |
key: ${{ secrets.SSH_PRIVATE_KEY }} | |
# Additional flags to pass to ansible-playbook | |
options: | | |
--inventory inventory/cluster/hosts.ini | |
--extra-vars ansible_sudo_pass=${{ secrets.PASSWORD }} | |
--verbose | |
- name: Kill VPN connection | |
if: always() | |
run: sudo killall openvpn3 |