Ansible: Difference between revisions

Variables: improve clarity
clean up link to Releases and Maintenance
 
(3 intermediate revisions by the same user not shown)
Line 8: Line 8:




Also, RedHat seems to have purposely made things very convoluted in terms of versioning, release cycles and product naming. So check https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html and see if you can figure it out. <ref>In 2024 people are still '''[https://www.reddit.com/r/ansible/comments/1chyjdc/confused_about_ansible_documentation_and_versions/ Confused about Ansible documentation and versions]''' It's rather ridiculous that their ansible-core project does NOT use SemVer</ref>
Also, RedHat seems to have purposely made things very convoluted in terms of versioning, release cycles and product naming. So check [https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html '''Releases and Maintenance'''] and see if you can figure it out. <ref>In 2024 people are still '''[https://www.reddit.com/r/ansible/comments/1chyjdc/confused_about_ansible_documentation_and_versions/ Confused about Ansible documentation and versions]''' It's rather ridiculous that their ansible-core project does NOT use SemVer</ref> In [[Meza]], we use 'ansible-core' which does not follow [[Semantic Versioning|SemVer]], while the Community Project does follow SemVer


==Installation==
==Installation==
Line 35: Line 35:
Also, if you want to install other Ansible Galaxy projects, you can either do it "manually" <code> ansible-galaxy install -r </code> Or, setup a 'requirements.yml' file in your playbook that then gets run by your stack. <ref>https://stackoverflow.com/questions/25230376/how-to-automatically-install-ansible-galaxy-roles</ref> <ref>Supposedly this only works for newer versions of Ansible, per the warning on their homepage:<blockquote> Warning alert:To be able to download content from galaxy it is required to have ansible-core>=2.13.9 Please, check it running the command: ansible --version</blockquote>
Also, if you want to install other Ansible Galaxy projects, you can either do it "manually" <code> ansible-galaxy install -r </code> Or, setup a 'requirements.yml' file in your playbook that then gets run by your stack. <ref>https://stackoverflow.com/questions/25230376/how-to-automatically-install-ansible-galaxy-roles</ref> <ref>Supposedly this only works for newer versions of Ansible, per the warning on their homepage:<blockquote> Warning alert:To be able to download content from galaxy it is required to have ansible-core>=2.13.9 Please, check it running the command: ansible --version</blockquote>


'''But''', it worked fine for me in the Meza 1_39 upgrade using Ansible 2.9.27
'''But''', it worked fine for me in the Meza 1_39 upgrade using Ansible 2.9.27 I think the reason it worked was that I was using old-galaxy.ansible.com in my ansible.cfg which was backwards compatible.
</ref>  
</ref>  


Line 61: Line 61:
#<code>ansible localhost -m setup --tree /tmp/facts</code> store all facts in a file 'tree', based on hostname
#<code>ansible localhost -m setup --tree /tmp/facts</code> store all facts in a file 'tree', based on hostname
#<code>ansible -m debug -a "var=hostvars['wiki.example.com']" localhost</code> gives you the '[[ansible hostvars]]'
#<code>ansible -m debug -a "var=hostvars['wiki.example.com']" localhost</code> gives you the '[[ansible hostvars]]'
#<code>ansible -m ansible.builtin.debug -a "var=hostvars['localhost']" -c local localhost</code> is another way of writing this using the fully qualified module name and working on localhost (no inventory needed; and actually you don't need to specify the connection as local because that is implied)
#<code>ansible-playbook play1.yml play2.yml</code> Run multiple playbooks
#<code>ansible-playbook play1.yml play2.yml</code> Run multiple playbooks
#<code>ansible-playbook -i production webservers.yml --tags ntp '''--list-tasks'''</code> confirm what task names would be run if I ran this command and said "just ntp tasks"
#<code>ansible-playbook -i production webservers.yml --tags ntp '''--list-tasks'''</code> confirm what task names would be run if I ran this command and said "just ntp tasks"
Line 80: Line 81:
==Playbooks==
==Playbooks==
Ansible "[http://docs.ansible.com/playbooks.html Playbooks]" use an easy and descriptive language based on YAML.
Ansible "[http://docs.ansible.com/playbooks.html Playbooks]" use an easy and descriptive language based on YAML.
== With Meza ==
sudo meza deploy monolith -vvv -e group_wheel=wheel -e ansible_user=meza-ansible


==Roles==
==Roles==
Line 86: Line 90:
==Targets==
==Targets==
Ansible can deploy to virtualization environments and public and private cloud environments including VMWare, OpenStack, AWS, Eucalyptus Cloud, KVM, and CloudStack
Ansible can deploy to virtualization environments and public and private cloud environments including VMWare, OpenStack, AWS, Eucalyptus Cloud, KVM, and CloudStack
==Testing==
==Testing==
{{#evu:https://www.youtube.com/watch?v=FaXVZ60o8L8&t=1244s
{{#evu:https://www.youtube.com/watch?v=FaXVZ60o8L8&t=1244s