added stop and then start

pull/4/head
Cian Hatton 3 years ago
parent 151d724e8b
commit 87aed53755

@ -16,8 +16,31 @@
hosts: servers
vars_files:
- ../variables.yml
- ~/.homelab/variables.yml
tasks:
- name: Restore Portainer
import_tasks: ../tasks/restore-volume-tasks.yml
vars:
container_name: "portainer"
- name: Restore Linkding
import_tasks: ../tasks/restore-volume-tasks.yml
vars:
container_name: "linkding"
- name: Start Linkding Stack
import_tasks: ../tasks/create-stack-tasks.yml
vars:
container_name: "linkding"
stack_name: "linkding"
- name: Restore Nginx Proxy Manager
import_tasks: ../tasks/restore-volume-tasks.yml
vars:
container_name: "nginx-proxy-manager"
- name: Start Nginx Proxy Manager
import_tasks: ../tasks/create-stack-tasks.yml
vars:
container_name: "nginx-proxy-manager"
stack_name: "nginx-proxy-manager"

@ -0,0 +1,12 @@
---
- name: Pull start-portainer-stack
docker_image:
name: ghcr.io/chatton/start-portainer-stack:master
source: pull
- name: Start stack
ansible.builtin.command: docker run --rm
-e PORTAINER_USER_NAME=admin
-e PORTAINER_PASSWORD="{{portainer_password}}"
-e PORTAINER_BASE_URL="http://{{ansible_eth0.ipv4.address}}:9000"
ghcr.io/chatton/start-portainer-stack:master "{{stack_name}}"

@ -10,7 +10,7 @@
source: pull
- name: Pull docker-volume-backup
docker_image:
name: {{docker_volume_backup_image}}
name: "{{docker_volume_backup_image}}"
source: pull
# https://stackoverflow.com/questions/45237632/ansible-w-docker-show-current-container-state

@ -0,0 +1,10 @@
#!/bin/bash
vm_ip="${1}"
echo "Configuring new ip of: ${vm_ip}"
# update hosts file directly
rsync /Users/chatton/sync/Sync/backups/portainer_portainer_data-1-8-2022.tar.gz "root@${vm_ip}:/mnt/hdds/backups/"
rsync /Users/chatton/sync/Sync/backups/linkding_data-1-8-2022.tar.gz "root@${vm_ip}:/mnt/hdds/backups/"

@ -8,10 +8,6 @@ import (
"net/http"
)
const (
applicationJson = "application/json"
)
// api docs
// https://app.swaggerhub.com/apis/portainer/portainer-ce/2.9.3
@ -97,6 +93,17 @@ func (c *PortainerClient) StartStack(stackId int) (ResponseMessage, error) {
}
return msg, err
}
func (c *PortainerClient) StopStack(stackId int) (ResponseMessage, error) {
url := fmt.Sprintf("api/stacks/%d/stop", stackId)
b, err := c.post(url, nil)
msg := ResponseMessage{}
if err := json.Unmarshal(b, &msg); err != nil {
return msg, err
}
return msg, err
}
func (c *PortainerClient) post(path string, payload interface{}) ([]byte, error) {
jsonBytes, err := json.Marshal(payload)
if err != nil {

@ -85,6 +85,11 @@ func main() {
log.Fatalf("no stack found with name: %s\n", stackName)
}
_, err = c.StopStack(s.ID)
if err != nil {
log.Fatal(err)
}
msg, err := c.StartStack(s.ID)
if err != nil {
log.Fatal(err)

Loading…
Cancel
Save