I like to think to myself &quot;If I had to verify this server manually what would I check?&quot; and write automated tests for those. Usually, it&#x27;s a few high level&#x2F;important checks for critical services, ports, packages, and users. For configuration files I check for one setting and if it&#x27;s there assume the rest are correct. Ultimately, it&#x27;s mostly going by gut and balancing level of effort in maintaining a test vs increased level of confidence in the deployment from having said test.<p>Some tools out there:<p>* <a href="https:&#x2F;&#x2F;github.com&#x2F;aelsabbahy&#x2F;goss" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;aelsabbahy&#x2F;goss</a> - YAML, simple, self-contained binary, extremely fast.<p>* <a href="https:&#x2F;&#x2F;github.com&#x2F;indusbox&#x2F;goss-ansible" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;indusbox&#x2F;goss-ansible</a> - Ansible module for goss, never used this, but you might find it useful<p>* <a href="http:&#x2F;&#x2F;serverspec.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;serverspec.org&#x2F;</a> - Ruby, most popular infra testing tool<p>*  <a href="https:&#x2F;&#x2F;github.com&#x2F;chef&#x2F;inspec" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;chef&#x2F;inspec</a> - Ruby, looks like an improved serverspec, almost same syntax, made by the chef guys<p>* <a href="https:&#x2F;&#x2F;github.com&#x2F;philpep&#x2F;testinfra" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;philpep&#x2F;testinfra</a> - Python, don&#x27;t know much about it, but mentioning it since Ansible is Python.<p>Spend a little bit of time experimenting with all of them, see which one you like.<p>Full disclosure: I&#x27;m the author of goss.