initial commit

This commit is contained in:
Dan Hamik 2024-11-26 12:27:27 -06:00
commit 1d2c1a17aa
7 changed files with 129 additions and 0 deletions

View File

@ -0,0 +1,29 @@
Name: Commit Checks
run-name: ${{ gitea.actor }}
on:
push:
branches:
- "**"
- "!main"
jobs:
Plan:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
#
- name: List Contents
id: ls
run: ls -al
- name: Deploy
run: |
echo "${{ secrets.GITEASECRET_TOKEN }}" | docker login git.hamik.net -u paradizelost --password-stdin
docker build -t git.hamik.net/paradizelost/pingtest:dev .
docker push git.hamik.net/paradizelost/pingtest:dev

View File

@ -0,0 +1,41 @@
Name: Container Build Push
run-name: ${{ gitea.actor }}
on:
pull_request:
types: [closed]
jobs:
Plan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: List Contents
id: ls
run: ls -al
- name: Deploy
run: |
echo "${{ secrets.GITEASECRET_TOKEN }}" | docker login git.hamik.net -u paradizelost --password-stdin
docker build -t git.hamik.net/paradizelost/pingtest:latest .
docker push git.hamik.net/paradizelost/pingtest:latest
Deploy:
needs: [Plan]
runs-on: pingtest
defaults:
run:
working-directory: /docker/pingtest
steps:
- name: Destroy Container
id: down
run: docker compose down
- name: Pull Updates
id: pull
run: docker compose pull
- name: Start Containers
id: start
run: docker compose up -d

11
Dockerfile Normal file
View File

@ -0,0 +1,11 @@
FROM debian:bullseye-slim
#
RUN apt update && apt install python3 python3-pip -y
COPY logpingresult.py /usr/local/bin/
COPY requirements.txt /
COPY init.sh /
RUN chmod +x /init.sh
RUN chmod +x /usr/local/bin/logpingresult.py
RUN pip3 install -r /requirements.txt
RUN apt clean
CMD ["/init.sh"]

10
docker-compose.yml Normal file
View File

@ -0,0 +1,10 @@
services:
enphase:
image: git.hamik.net/paradizelost/pingtest:latest
container_name: pingtest
restart: always
environment:
- INFLUX_USER=${INFLUX_USER}
- INFLUX_PASSWORD=${INFLUX_PASSWORD}
- INFLUX_URI=${INFLUX_URI}
- PING_HOSTS="8.8.8.8,10.0.2.1,24.220.0.10,10.2.0.1,192.168.1.25"

2
init.sh Normal file
View File

@ -0,0 +1,2 @@
#!/bin/bash
/usr/local/bin/logpingresult.py

31
logpingresult.py Normal file
View File

@ -0,0 +1,31 @@
#/usr/bin/python3
import os
import subprocess as sp
import requests
import time
def addinfluxrecord(ip,pingtime):
data = f"PingTime,IP={ip} value={pingtime}"
print(data)
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
response = requests.post(
influxuri,
data=data,
headers=headers,
auth=(infdbuser,infdbpass),
)
return response
infdbuser = os.environ["INFLUX_USER"]
infdbpass = os.environ["INFLUX_PASSWORD"]
influxuri = os.environ["INFLUX_URI"]
pingaddresses = os.environ["PING_HOSTS"].split(",")
while(True):
for ip in pingaddresses:
response = sp.getstatusoutput(f"ping -c 1 {ip}")
if(response[0]!=0):
time=2000
else:
myresp = response[1].split("\n")[1].split(' ')[6].split('=')[1]
result = addinfluxrecord(ip,myresp)
print(result)
time.sleep(5)

5
requirements.txt Normal file
View File

@ -0,0 +1,5 @@
boto==2.49.0
boto3==1.26.27
botocore==1.29.27
requests==2.28.1
tabulate==0.8.9