feat(agent): tie up
This commit is contained in:
@@ -17,17 +17,16 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type CommanderClient struct {
|
type CommanderClient struct {
|
||||||
cmder *commander.CommandExecutor
|
cmder *commander.CommandExecutor
|
||||||
wg *sync.WaitGroup
|
wg *sync.WaitGroup
|
||||||
id string
|
id, label string
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(
|
func New(
|
||||||
cmder *commander.CommandExecutor,
|
cmder *commander.CommandExecutor,
|
||||||
wg *sync.WaitGroup,
|
id, label string,
|
||||||
id string,
|
|
||||||
) CommanderClient {
|
) CommanderClient {
|
||||||
return CommanderClient{cmder, wg, id}
|
return CommanderClient{cmder, new(sync.WaitGroup), id, label}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *CommanderClient) HandleCommands(ctx context.Context, srvAddr string, tc credentials.TransportCredentials) error {
|
func (self *CommanderClient) HandleCommands(ctx context.Context, srvAddr string, tc credentials.TransportCredentials) error {
|
||||||
@@ -36,7 +35,7 @@ func (self *CommanderClient) HandleCommands(ctx context.Context, srvAddr string,
|
|||||||
return fmt.Errorf("Failed to connect to gRPC: %w", err)
|
return fmt.Errorf("Failed to connect to gRPC: %w", err)
|
||||||
}
|
}
|
||||||
ccli := proto.NewCommanderClient(cli)
|
ccli := proto.NewCommanderClient(cli)
|
||||||
bidi, err := ccli.Stream(metadata.NewOutgoingContext(ctx, metadata.MD{"agentid": []string{self.id}}))
|
bidi, err := ccli.Stream(metadata.NewOutgoingContext(ctx, metadata.MD{"agentid": []string{self.id}, "label": []string{self.label}}))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,14 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
|
"gitea.d3m0k1d.ru/d3m0k1d/HellreigN/agent/internal/client"
|
||||||
|
"gitea.d3m0k1d.ru/d3m0k1d/HellreigN/agent/internal/commander"
|
||||||
"gitea.d3m0k1d.ru/d3m0k1d/HellreigN/agent/internal/config"
|
"gitea.d3m0k1d.ru/d3m0k1d/HellreigN/agent/internal/config"
|
||||||
|
"gitea.d3m0k1d.ru/d3m0k1d/HellreigN/agent/internal/mtls"
|
||||||
"gitea.d3m0k1d.ru/d3m0k1d/HellreigN/agent/internal/registration"
|
"gitea.d3m0k1d.ru/d3m0k1d/HellreigN/agent/internal/registration"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -46,4 +50,18 @@ func main() {
|
|||||||
log.Printf("Certificates saved to %s", cfg.CertDir)
|
log.Printf("Certificates saved to %s", cfg.CertDir)
|
||||||
|
|
||||||
log.Println("Agent registration complete")
|
log.Println("Agent registration complete")
|
||||||
|
err = func() error {
|
||||||
|
creds, err := mtls.LoadMTLSCredentials(certs.CACertPEM, certs.ClientCertPEM, certs.ClientKeyPEM)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
|
defer cancel()
|
||||||
|
cmdexe := new(commander.CommandExecutor)
|
||||||
|
ccli := client.New(cmdexe, cfg.RegistrationToken)
|
||||||
|
return ccli.HandleCommands(ctx, cfg.BackendURL, creds)
|
||||||
|
}()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("Failed to generate key and CSR: %v", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user