# CI, CD and Fleet Management with git, GitHub Actions, Mender, Ansible, pytest and Debian

**URL:** <https://hub.mender.io/t/ci-cd-and-fleet-management-with-git-github-actions-mender-ansible-pytest-and-debian/4959>\
**Category:** General Discussions\
**Tags:** debian, mender\
**Created:** [May 15, 2022, 8:39pm UTC](https://hub.mender.io/t/ci-cd-and-fleet-management-with-git-github-actions-mender-ansible-pytest-and-debian/4959 "2022-05-15T20:39:59Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![lueschem](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/lueschem/32/214_2.png) [@lueschem](https://hub.mender.io/u/lueschem)\
**Post date:** [May 15, 2022, 8:39pm UTC](https://hub.mender.io/t/ci-cd-and-fleet-management-with-git-github-actions-mender-ansible-pytest-and-debian/4959/1 "2022-05-15T20:39:59Z")

</div>

I would like to start a discussion about efficient IoT device management at scale.

Here is my (developer centric) approach for various aspects:

- [Managing an individual IoT device.](https://www.get-edi.io/Surprisingly-Easy-IoT-Device-Management/)
- [Building and testing OS images.](https://www.get-edi.io/Building-and-Testing-OS-Images-with-GitHub-Actions/)
- [Orchestrating a fleet with git.](https://www.get-edi.io/Managing-an-IoT-Fleet-with-GitOps/)

I rely on a small toolbox containing carefully chosen tools:

- [git](https://git-scm.com/): Not only for source code management but also for fleet orchestration.
- [GitHub Actions](https://github.com/features/actions): For anything that can be automated.
- [Mender](https://mender.io/): For OTA updates, configuration dispatching, inventory management and remote access.
- [Ansible](https://www.ansible.com/): For OS image builds, device configuration management and fleet orchestration.
- [Python](https://www.python.org/), [pytest](https://www.pytest.org), [Testinfra](https://testinfra.readthedocs.io/en/latest/), [edi](https://www.get-edi.io/): For building and testing OS images.
- [Debian](https://www.debian.org/): As a basis for building the customized OS images.

What tools are you using?  
Are you striving for an all-in-one IoT offering from a single vendor or are you building your system by combining several best in class solutions (like above)?  
What tool(s) shall I add to the above toolbox to cover the monitoring aspect?  
How are you orchestrating your fleet?

---

<div class="post-metadata">

**Author:** ![TheYoctoJester](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/theyoctojester/32/1444_2.png) [@TheYoctoJester](https://hub.mender.io/u/TheYoctoJester)\
**Post date:** [May 16, 2022, 10:36am UTC](https://hub.mender.io/t/ci-cd-and-fleet-management-with-git-github-actions-mender-ansible-pytest-and-debian/4959/2 "2022-05-16T10:36:30Z")

</div>

Hi @lueschem!

Wow, that is some really cool stuff that you created there, and we’re super happy to be the in as the OTA provider.

Speaking from my personal perspective, I am actually somewhat curious about the mental model. Is it more like a pipeline, or rather like a pot? Means, do you think about or even expect people to swap out things from your suggested toolbox for something else? Or do you rather understand it as holistic approach, that is best used in this exact combination?

Really curious to hear other opinions, too!

Greetz, Josef

---

<div class="post-metadata">

**Author:** ![lueschem](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/lueschem/32/214_2.png) [@lueschem](https://hub.mender.io/u/lueschem)\
**Post date:** [May 16, 2022, 12:32pm UTC](https://hub.mender.io/t/ci-cd-and-fleet-management-with-git-github-actions-mender-ansible-pytest-and-debian/4959/3 "2022-05-16T12:32:13Z")

</div>

Hi @TheYoctoJester

Actually I am very happy if I have the possibility to replace a tool within my toolbox with an equivalent tool. In the above example the replacements could be:

- git → Mercurial
- GitHub Actions → GitLab
- Mender → SWUpdate + hawkBit
- Ansible → Saltstack
- Python, pytest, Testinfra, edi → Yocto
- Debian → Yocto

Wherever possible, I try to avoid a vendor/technology lock-in.

So I am pretty sure that others will fill their toolbox with several different tools.

Best regards  
Matthias

---

<div class="post-metadata">

**Author:** ![lueschem](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/lueschem/32/214_2.png) [@lueschem](https://hub.mender.io/u/lueschem)\
**Post date:** [September 22, 2022, 1:51pm UTC](https://hub.mender.io/t/ci-cd-and-fleet-management-with-git-github-actions-mender-ansible-pytest-and-debian/4959/4 "2022-09-22T13:51:57Z")

</div>

Here is a presentation I did at the OS summit in Dublin: [https://www.get-edi.io/assets/pdfs/AutomatingAndManagingAnIoTFleetUsingGit.pdf](https://www.get-edi.io/assets/pdfs/AutomatingAndManagingAnIoTFleetUsingGit.pdf)
