From 3eda081e8d2e3fc06ba947db9170430747d19320 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Thu, 18 Jul 2024 14:10:55 +0100 Subject: [PATCH 1/3] ansible homesrv01 role --- .gitignore | 2 +- .../roles/myInfra.dev.homesrv01/meta/main.yml | 56 +++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 ansible/roles/myInfra.dev.homesrv01/meta/main.yml diff --git a/.gitignore b/.gitignore index 100d6c8..0314a05 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,4 @@ services/mosquitto lib/* lib2/* services/zigbee2mqtt/volumes/* -*.env +*.env \ No newline at end of file diff --git a/ansible/roles/myInfra.dev.homesrv01/meta/main.yml b/ansible/roles/myInfra.dev.homesrv01/meta/main.yml new file mode 100644 index 0000000..b1ce387 --- /dev/null +++ b/ansible/roles/myInfra.dev.homesrv01/meta/main.yml @@ -0,0 +1,56 @@ + + + +galaxy_info: + author: your name + description: your role description + company: your company (optional) + + # If the issue tracker for your role is not on github, uncomment the + # next line and provide a value + # issue_tracker_url: http://example.com/issue/tracker + + # Choose a valid license ID from https://spdx.org - some suggested licenses: + # - BSD-3-Clause (default) + # - MIT + # - GPL-2.0-or-later + # - GPL-3.0-only + # - Apache-2.0 + # - CC-BY-4.0 + license: license (GPL-2.0-or-later, MIT, etc) + + min_ansible_version: 2.1 + + # If this a Container Enabled role, provide the minimum Ansible Container version. + # min_ansible_container_version: + + # + # Provide a list of supported platforms, and for each platform a list of versions. + # If you don't wish to enumerate all versions for a particular platform, use 'all'. + # To view available platforms and versions (or releases), visit: + # https://galaxy.ansible.com/api/v1/platforms/ + # + # platforms: + # - name: Fedora + # versions: + # - all + # - 25 + # - name: SomePlatform + # versions: + # - all + # - 1.0 + # - 7 + # - 99.99 + + galaxy_tags: [] + # List tags for your role here, one per line. A tag is a keyword that describes + # and categorizes the role. Users find roles by searching for tags. Be sure to + # remove the '[]' above, if you add tags to this list. + # + # NOTE: A tag is limited to a single word comprised of alphanumeric characters. + # Maximum 20 tags per role. + +dependencies: + - role: myInfra.journald + # List your role dependencies here, one per line. Be sure to remove the '[]' above, + # if you add dependencies to this list. From 632b1bdda72362f7634e1173691911ab591fabd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Fri, 19 Jul 2024 00:57:27 +0100 Subject: [PATCH 2/3] removed myInfra.telegraf role --- ansible/roles/myInfra.dev.homesrv01/meta/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/ansible/roles/myInfra.dev.homesrv01/meta/main.yml b/ansible/roles/myInfra.dev.homesrv01/meta/main.yml index b1ce387..bc20074 100644 --- a/ansible/roles/myInfra.dev.homesrv01/meta/main.yml +++ b/ansible/roles/myInfra.dev.homesrv01/meta/main.yml @@ -52,5 +52,6 @@ galaxy_info: dependencies: - role: myInfra.journald + # - role: myInfra.telegraf (currently using docker telegraf container ) # List your role dependencies here, one per line. Be sure to remove the '[]' above, # if you add dependencies to this list. From 04ccdff78f6ffe2744a7cd3bc62fc1ed3af337c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Fri, 19 Jul 2024 15:01:30 +0100 Subject: [PATCH 3/3] ansible portainer and auto-update --- README.md | 9 +-- ansible/roles/myInfra.dev.homesrv01/README.md | 0 .../tasks/auto-update.setup.yml | 60 +++++++++++++++++++ .../tasks/docker/main.yml | 2 + .../tasks/docker/portainer.yml | 14 +++++ .../myInfra.dev.homesrv01/tasks/main.yml | 3 + services/portainer/docker-run.sh | 5 -- 7 files changed, 82 insertions(+), 11 deletions(-) create mode 100644 ansible/roles/myInfra.dev.homesrv01/README.md create mode 100644 ansible/roles/myInfra.dev.homesrv01/tasks/auto-update.setup.yml create mode 100644 ansible/roles/myInfra.dev.homesrv01/tasks/docker/main.yml create mode 100644 ansible/roles/myInfra.dev.homesrv01/tasks/docker/portainer.yml create mode 100644 ansible/roles/myInfra.dev.homesrv01/tasks/main.yml delete mode 100755 services/portainer/docker-run.sh diff --git a/README.md b/README.md index 637e07a..759cdf9 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,7 @@ apt install git -y curl -fsSL https://get.docker.com -o get-docker.sh && sh ./get-docker.sh docker run hello-world && docker info apt install sshfs +apt install ansible ``` ## fstab @@ -88,12 +89,8 @@ docker volume create --driver local --opt type=none --opt device=/ --opt o=bind ``` ### Portainer -for more information [check](https://git.limbosolutions.com/kb/portainer) - -#### Setup & Update -``` bash -services/portainer/docker-run.sh -``` + + mantained by ansible [myInfra.dev.homesrv01 role](ansible/roles/myInfra.dev.homesrv01/README.md) ### Promtail diff --git a/ansible/roles/myInfra.dev.homesrv01/README.md b/ansible/roles/myInfra.dev.homesrv01/README.md new file mode 100644 index 0000000..e69de29 diff --git a/ansible/roles/myInfra.dev.homesrv01/tasks/auto-update.setup.yml b/ansible/roles/myInfra.dev.homesrv01/tasks/auto-update.setup.yml new file mode 100644 index 0000000..2eadbea --- /dev/null +++ b/ansible/roles/myInfra.dev.homesrv01/tasks/auto-update.setup.yml @@ -0,0 +1,60 @@ +- name: Check /etc/homesrv01/auto-update + become: true + ansible.builtin.file: + path: /etc/homesrv01/auto-update + state: directory + mode: '0755' + +- name: Check /etc/homesrv01/auto-update/tasks + become: true + ansible.builtin.file: + path: /etc/homesrv01/auto-update/tasks + state: directory + mode: '0755' + +- name: copy /tasks/docker/portainer.yml + become: true + ansible.builtin.copy: + dest: "/etc/homesrv01/auto-update/tasks/portainer.yml" + src: "tasks/docker/portainer.yml" + +- name: setup auto-update.yml + become: true + copy: + dest: "/etc/homesrv01/auto-update/site.yml" + content: | + # file maintained by myInfra.dev.homesrv01 ansible role + --- + - name: "auto update system" + hosts: localhost + tasks: + - name: Include portainer update + import_tasks: "tasks/portainer.yml" + + +- name: setup auto-update executable + become: true + copy: + dest: "/usr/local/bin/auto-update" + content: | + # file maintained by myInfra.dev.homesrv01 ansible role + ansible-playbook /etc/homesrv01/auto-update/site.yml + +- name: setup auto-update executable + become: true + file: dest=/usr/local/bin/auto-update mode=a+x + +- name: setup auto-update cron + become: true + file: dest=/usr/local/bin/auto-update mode=a+x + +- name: setup auto-update daily cron file + become: true + ansible.builtin.cron: + user: root + name: auto-update + weekday: "*" + minute: "0" + hour: "0" + job: "/usr/local/bin/auto-update" + cron_file: myInfra_auto-update \ No newline at end of file diff --git a/ansible/roles/myInfra.dev.homesrv01/tasks/docker/main.yml b/ansible/roles/myInfra.dev.homesrv01/tasks/docker/main.yml new file mode 100644 index 0000000..0566d01 --- /dev/null +++ b/ansible/roles/myInfra.dev.homesrv01/tasks/docker/main.yml @@ -0,0 +1,2 @@ +--- +- include_tasks: portainer.yml \ No newline at end of file diff --git a/ansible/roles/myInfra.dev.homesrv01/tasks/docker/portainer.yml b/ansible/roles/myInfra.dev.homesrv01/tasks/docker/portainer.yml new file mode 100644 index 0000000..a75e957 --- /dev/null +++ b/ansible/roles/myInfra.dev.homesrv01/tasks/docker/portainer.yml @@ -0,0 +1,14 @@ +- name: Portainer - Docker Container Setup + become: true + community.docker.docker_container: + name: portainer + image: portainer/portainer-ce + state: started + restart_policy: unless-stopped + pull: yes + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - portainer:/data + ports: + - "9443:9443" + - "8000:8000" diff --git a/ansible/roles/myInfra.dev.homesrv01/tasks/main.yml b/ansible/roles/myInfra.dev.homesrv01/tasks/main.yml new file mode 100644 index 0000000..8fd77a2 --- /dev/null +++ b/ansible/roles/myInfra.dev.homesrv01/tasks/main.yml @@ -0,0 +1,3 @@ +--- +- include_tasks: docker/main.yml +- include_tasks: auto-update.setup.yml \ No newline at end of file diff --git a/services/portainer/docker-run.sh b/services/portainer/docker-run.sh deleted file mode 100755 index 5ff8da0..0000000 --- a/services/portainer/docker-run.sh +++ /dev/null @@ -1,5 +0,0 @@ -#! /bin/bash -docker pull portainer/portainer-ce -docker stop portainer -docker rm portainer -docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer:/data portainer/portainer-ce \ No newline at end of file