neden çalışmıyon...
This commit is contained in:
parent
74497f2f47
commit
749a690b6c
12 changed files with 186 additions and 35 deletions
|
@ -13,14 +13,15 @@ RUN apt-get update
|
||||||
RUN apt-get upgrade -y
|
RUN apt-get upgrade -y
|
||||||
|
|
||||||
### INSTALL USEFUL UTILITIES ###
|
### INSTALL USEFUL UTILITIES ###
|
||||||
RUN apt-get install curl wget tree nano -y
|
RUN apt-get install curl wget tree nano procps -y
|
||||||
|
|
||||||
### INSTALL BUILD DEPENDENCIES ###
|
### INSTALL BUILD DEPENDENCIES ###
|
||||||
RUN apt-get install dh-golang -y
|
RUN apt-get install dh-golang dh-make -y
|
||||||
RUN apt-get install dh-make-golang -y
|
RUN apt-get install dh-make-golang -y
|
||||||
RUN apt-get install golang-github-sevlyar-go-daemon-dev -y
|
RUN apt-get install golang-github-sevlyar-go-daemon-dev -y
|
||||||
RUN apt-get install golang-golang-x-exp-dev -y
|
RUN apt-get install golang-golang-x-exp-dev -y
|
||||||
|
|
||||||
|
|
||||||
### CONFIGURATIONS ###
|
### CONFIGURATIONS ###
|
||||||
# Enable UTF8 Encoding
|
# Enable UTF8 Encoding
|
||||||
RUN echo "LC_ALL=en_US.UTF-8" >> /etc/environment
|
RUN echo "LC_ALL=en_US.UTF-8" >> /etc/environment
|
||||||
|
|
49
Makefile
Normal file
49
Makefile
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
REPO_NAME="ahenk-go"
|
||||||
|
REPO_LINK="https://git.aliberksandikci.com.tr/liderahenk/${REPO_NAME}"
|
||||||
|
|
||||||
|
DAEMON_NAME="ahenk-go"
|
||||||
|
OLD_DAEMON_NAME="ahenkd-go"
|
||||||
|
PYTHON_DAEMON_NAME="ahenkd"
|
||||||
|
|
||||||
|
CONF_DIR="/etc/ahenk-go/"
|
||||||
|
TEMP_DIR="$(mktemp -d)"
|
||||||
|
MAIN_DIR="${TEMP_DIR}/${REPO_NAME}/"
|
||||||
|
|
||||||
|
info:
|
||||||
|
@echo "Made by Aliberk Sandıkçı - 2023"
|
||||||
|
@echo "preclean: for cleaning old files, configurations"
|
||||||
|
@echo "TODO test: Test go files"
|
||||||
|
@echo "install: Build and install ahenk-go"
|
||||||
|
@echo "TODO uninstall: Uninstall ahenk-go"
|
||||||
|
@echo "TODO clean: for postclean"
|
||||||
|
|
||||||
|
preclean:
|
||||||
|
sudo rm -rf /usr/bin/$(DAEMON_NAME)
|
||||||
|
sudo rm -rf /usr/bin/${OLD_DAEMON_NAME}
|
||||||
|
sudo rm -rf /usr/bin/${PYTHON_DAEMON_NAME}
|
||||||
|
|
||||||
|
@# TODO systemd control for both three process for docker
|
||||||
|
@# REVIEW are both killall and systemctl commands running?
|
||||||
|
@pgrep -x ${DAEMON_NAME} && (sudo killall "${DAEMON_NAME}" || sudo systemctl disable "${DAEMON_NAME}" || sudo systemctl stop "${DAEMON_NAME}") || echo "no ${DAEMON_NAME} found"
|
||||||
|
@pgrep -x ${OLD_DAEMON_NAME} && (sudo killall "${OLD_DAEMON_NAME}" || sudo systemctl disable "${OLD_DAEMON_NAME}" || sudo systemctl stop "${OLD_DAEMON_NAME}") || echo "no ${OLD_DAEMON_NAME} found"
|
||||||
|
|
||||||
|
@# TODO
|
||||||
|
@# echo -e "Do you want to remove python implementation of ahenk if installed in system?"
|
||||||
|
# read -rp "(Y/N) " input
|
||||||
|
|
||||||
|
@pgrep -x ${PYTHON_DAEMON_NAME} && (sudo killall "${PYTHON_DAEMON_NAME}" || sudo systemctl disable "${PYTHON_DAEMON_NAME}" || sudo systemctl stop "${PYTHON_DAEMON_NAME}") || echo "no ${PYTHON_DAEMON_NAME} found"
|
||||||
|
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo rm -rf ${CONF_DIR}
|
||||||
|
@echo -e "PRE-CLENING DONE\n"
|
||||||
|
test:
|
||||||
|
|
||||||
|
install:
|
||||||
|
go build -o ${DESTDIR}/usr/bin/${REPO_NAME} ./cmd/ahenk-go/
|
||||||
|
@sudo mkdir -p "${CONF_DIR}"
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
|
||||||
|
|
||||||
|
clean: #postclean:
|
||||||
|
|
|
@ -71,7 +71,7 @@ func main() {
|
||||||
log.Print("STARTED AS NO-DAEMON")
|
log.Print("STARTED AS NO-DAEMON")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.Print("Please enter a valid option !")
|
panic("Please enter a valid option !")
|
||||||
}
|
}
|
||||||
PluginManager()
|
PluginManager()
|
||||||
log.Print("Plugin Manager Started Succesfully")
|
log.Print("Plugin Manager Started Succesfully")
|
33
cmd/ahenk-go/plugin-manager.go
Normal file
33
cmd/ahenk-go/plugin-manager.go
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "log"
|
||||||
|
|
||||||
|
// type Greeter interface {
|
||||||
|
// Greet()
|
||||||
|
// }
|
||||||
|
|
||||||
|
func PluginManager() {
|
||||||
|
// LoadPlugin("resources")
|
||||||
|
|
||||||
|
// // 4. use the module
|
||||||
|
// greeter.Greet()
|
||||||
|
|
||||||
|
// greeter.Myvar()
|
||||||
|
// // for {
|
||||||
|
// // logPlugin(greeter.AgentInfo())
|
||||||
|
// // time.Sleep(30 * time.Second)
|
||||||
|
// // }
|
||||||
|
log.Print("plugin manager started succesfully")
|
||||||
|
}
|
||||||
|
|
||||||
|
// func logPlugin(mp map[string]interface{}) {
|
||||||
|
// fmt.Printf("\nOs Info:\n")
|
||||||
|
// for i, v := range mp {
|
||||||
|
// fmt.Printf("%v: %v\n", i, v)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // TODO response to Lider
|
||||||
|
// // func createResponse() {
|
||||||
|
|
||||||
|
// // }
|
25
cmd/ahenk-go/plugin-opener.go
Normal file
25
cmd/ahenk-go/plugin-opener.go
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
// // Load Plugin with plugin name and function name
|
||||||
|
// func LoadPlugin(plugName, funcName string) {
|
||||||
|
// plug, err := plugin.Open("../../plugins/resources/main.so")
|
||||||
|
// if err != nil {
|
||||||
|
// fmt.Println(err)
|
||||||
|
// os.Exit(1)
|
||||||
|
// }
|
||||||
|
|
||||||
|
// symGreeter, err := plug.Lookup("Greeter")
|
||||||
|
// if err != nil {
|
||||||
|
// fmt.Println(err)
|
||||||
|
// os.Exit(1)
|
||||||
|
// }
|
||||||
|
|
||||||
|
// var greeter Greeter
|
||||||
|
// greeter, ok := symGreeter.(Greeter)
|
||||||
|
// if !ok {
|
||||||
|
// fmt.Println("unexpected type from module symbol")
|
||||||
|
// os.Exit(1)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // NEXT move plugin-manager.go main here !
|
|
@ -1,30 +0,0 @@
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"ahenk-go/pkg/plugins/resources"
|
|
||||||
"fmt"
|
|
||||||
"log"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
func PluginManager() {
|
|
||||||
log.Print("Plugin Manager Started")
|
|
||||||
|
|
||||||
for {
|
|
||||||
logPlugin(resources.AgentInfo())
|
|
||||||
time.Sleep(30 * time.Second)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func logPlugin(mp map[string]interface{}) {
|
|
||||||
fmt.Printf("\nOs Info:\n")
|
|
||||||
for i, v := range mp {
|
|
||||||
fmt.Printf("%v: %v\n", i, v)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO response to Lider
|
|
||||||
// func createResponse() {
|
|
||||||
|
|
||||||
// }
|
|
5
debian/changelog
vendored
Normal file
5
debian/changelog
vendored
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
ahenk-go (0.0.1-1) UNRELEASED; urgency=low
|
||||||
|
|
||||||
|
* Initial release
|
||||||
|
|
||||||
|
-- Aliberk Sandıkçı <asandikci@aliberksandikci.com.tr> Mon, 21 Aug 2023 13:05:24 +0000
|
27
debian/control
vendored
Normal file
27
debian/control
vendored
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
Source: ahenk-go
|
||||||
|
Maintainer: Aliberk Sandıkçı <asandikci@aliberksandikci.com.tr>
|
||||||
|
Uploaders: Aliberk Sandıkçı <asandikci@aliberksandikci.com.tr>
|
||||||
|
Section: utils
|
||||||
|
Testsuite: autopkgtest-pkg-go
|
||||||
|
Priority: optional
|
||||||
|
Build-Depends: debhelper-compat (= 13),
|
||||||
|
dh-golang,
|
||||||
|
golang-any,
|
||||||
|
golang-github-sevlyar-go-daemon-dev,
|
||||||
|
golang-golang-x-exp-dev
|
||||||
|
Standards-Version: 4.6.0
|
||||||
|
Vcs-Browser: https://git.aliberksandikci.com.tr/Liderahenk/go-ahenk
|
||||||
|
Vcs-Git: https://git.aliberksandikci.com.tr/Liderahenk/go-ahenk.git
|
||||||
|
Homepage: https://liderahenk.org
|
||||||
|
Rules-Requires-Root: no
|
||||||
|
XS-Go-Import-Path: git.aliberksandikci.com.tr/Liderahenk/ahenk-go
|
||||||
|
|
||||||
|
Package: ahenk-go
|
||||||
|
Architecture: any
|
||||||
|
Depends: ${misc:Depends},
|
||||||
|
${shlibs:Depends}
|
||||||
|
Built-Using: ${misc:Built-Using}
|
||||||
|
Description: The client side of the Lider Ahenk Project
|
||||||
|
Lider Ahenk is an open source project which provides solutions
|
||||||
|
to manage, monitor and audit unlimited number of different
|
||||||
|
systems and users on a network.
|
13
debian/copyright
vendored
Normal file
13
debian/copyright
vendored
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
|
Upstream-Name: ahenk-go
|
||||||
|
Upstream-Contact: Aliberk Sandıkçı <asandikci@aliberksandikci.com.tr>
|
||||||
|
Source: https://git.aliberksandikci.com.tr/Liderahenk/ahenk-go
|
||||||
|
|
||||||
|
Files: *
|
||||||
|
Copyright: 2023 Aliberk Sandıkçı <asandikci@aliberksandikci.com.tr>
|
||||||
|
License: LGPL-3.0+
|
||||||
|
|
||||||
|
Files: debian/*
|
||||||
|
Copyright: 2023 Aliberk Sandıkçı <asandikci@aliberksandikci.com.tr>
|
||||||
|
License: LGPL-3.0+
|
||||||
|
Comment: Debian packaging is licensed under the same terms as upstream
|
10
debian/rules
vendored
Normal file
10
debian/rules
vendored
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
|
%:
|
||||||
|
dh $@ --builddirectory=_build --buildsystem=golang --with=golang
|
||||||
|
|
||||||
|
override_dh_auto_install:
|
||||||
|
dh_auto_install -- --no-source
|
||||||
|
# dh_systemd_enable || true
|
||||||
|
# dh_systemd_start || true
|
||||||
|
dh_installsystemd
|
|
@ -1,10 +1,13 @@
|
||||||
package resources
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"ahenk-go/pkg/osinfo"
|
"ahenk-go/pkg/osinfo"
|
||||||
|
"fmt"
|
||||||
"runtime"
|
"runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type greeting string
|
||||||
|
|
||||||
// return instant resource usage information
|
// return instant resource usage information
|
||||||
func ResourceUsage() map[string]string {
|
func ResourceUsage() map[string]string {
|
||||||
data := map[string]string{
|
data := map[string]string{
|
||||||
|
@ -27,7 +30,7 @@ func ResourceUsage() map[string]string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// return general Agent information (that changes rarely)
|
// return general Agent information (that changes rarely)
|
||||||
func AgentInfo() map[string]interface{} {
|
func (g greeting) AgentInfo() map[string]interface{} {
|
||||||
data := map[string]interface{}{
|
data := map[string]interface{}{
|
||||||
"System": runtime.GOOS, "Release": osinfo.GetKernelInfo()["Release"],
|
"System": runtime.GOOS, "Release": osinfo.GetKernelInfo()["Release"],
|
||||||
// TODO 'agentVersion': self.get_agent_version(),
|
// TODO 'agentVersion': self.get_agent_version(),
|
||||||
|
@ -67,3 +70,13 @@ func Info() map[string]string {
|
||||||
// inf["machine_oriented"] = "false"
|
// inf["machine_oriented"] = "false"
|
||||||
return inf
|
return inf
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (g greeting) Greet() {
|
||||||
|
fmt.Println("Hello Universe")
|
||||||
|
}
|
||||||
|
func (g greeting) Myvar() {
|
||||||
|
fmt.Println("I am here")
|
||||||
|
}
|
||||||
|
|
||||||
|
// this is exported
|
||||||
|
var Greeter greeting
|
|
@ -1,6 +1,11 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
### Ahenk Agent Local Installation Script
|
### Ahenk Agent Local Installation Script
|
||||||
|
### IMPORTANT NOTICE !
|
||||||
|
# Consider to use makefile for building or .deb file for installing package,
|
||||||
|
# using this scripts is not suggested anymore !
|
||||||
|
|
||||||
|
### --------------------- ###
|
||||||
|
|
||||||
### --> Prerequisites
|
### --> Prerequisites
|
||||||
# git
|
# git
|
||||||
|
|
Loading…
Reference in a new issue