Difference between revisions of "ansible notes"
From thelinuxwiki
(→modules and plugins) |
(→writing to files) |
||
(6 intermediate revisions by one user not shown) | |||
Line 4: | Line 4: | ||
pip install ansible | pip install ansible | ||
− | ==[https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html#variables-in-inventory Adding variables to inventory]== | + | ==variables== |
+ | ===types=== | ||
+ | [https://docs.ansible.com/ansible/latest/collections/ansible/builtin/type_debug_filter.html ansible.builtin.type_debug filter – show input data type] | ||
+ | ===[https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html#variables-in-inventory Adding variables to inventory]=== | ||
==Connecting to hosts== | ==Connecting to hosts== | ||
Line 57: | Line 60: | ||
PLAY RECAP **************************************************************************************************************************************** | PLAY RECAP **************************************************************************************************************************************** | ||
10.0.0.15 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 | 10.0.0.15 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 | ||
+ | |||
+ | ==programming== | ||
+ | |||
+ | ===[https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_conditionals.html conditionals]=== | ||
+ | |||
+ | ===[https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_loops.html loops]=== | ||
+ | |||
+ | ===jinja2=== | ||
+ | [https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_templating.html Templating (Jinja2)] | ||
+ | ==output== | ||
+ | ===parsing json=== | ||
+ | use community.general.json_query which uses | ||
+ | [https://jmespath.org/proposals/functions.html#join jmespath] | ||
+ | |||
+ | [https://docs.ansible.com/ansible/latest/collections/community/general/docsite/filter_guide_selecting_json_data.html Selecting JSON data: JSON queries] | ||
+ | |||
+ | ===writing to files=== | ||
+ | - name: output to file | ||
+ | lineinfile: | ||
+ | insertafter: EOF | ||
+ | dest: "out.txt" | ||
+ | line: "foo bar" | ||
==modules and plugins== | ==modules and plugins== | ||
Line 63: | Line 88: | ||
[https://thecloudops.org/difference-between-modules-and-plugins/ Difference between Modules and Plugins in Ansible] | [https://thecloudops.org/difference-between-modules-and-plugins/ Difference between Modules and Plugins in Ansible] | ||
− | ==collections== | + | ===collections=== |
[https://docs.ansible.com/ansible/5/user_guide/collections_using.html Using collections] | [https://docs.ansible.com/ansible/5/user_guide/collections_using.html Using collections] | ||
Collections are a distribution format for Ansible content that can include playbooks, roles, modules, and plugins. As modules move from the core Ansible repository into collections, the module documentation will move to the collections pages. | Collections are a distribution format for Ansible content that can include playbooks, roles, modules, and plugins. As modules move from the core Ansible repository into collections, the module documentation will move to the collections pages. | ||
− | == | + | ==use cases== |
− | === | + | ===network/security automation=== |
+ | |||
[https://docs.ansible.com/ansible/latest/network/user_guide/platform_index.html#platform-options platform modules (Maintained by Ansible Network Team)] | [https://docs.ansible.com/ansible/latest/network/user_guide/platform_index.html#platform-options platform modules (Maintained by Ansible Network Team)] | ||
− | [https://galaxy.ansible.com/ui/namespaces/check_point/ checkpoint modules (gaia / mgmt)] | + | ====[https://galaxy.ansible.com/ui/namespaces/check_point/ checkpoint modules (gaia / mgmt)]==== |
+ | ====fortinet==== | ||
[https://galaxy.ansible.com/ui/namespaces/fortinet/ fortinet] | [https://galaxy.ansible.com/ui/namespaces/fortinet/ fortinet] | ||
+ | |||
+ | [https://docs.fortinet.com/document/fortisoar/7.4.2/playbooks-guide/767891/jinja-filters-and-functions Jinja Filters and Functions] | ||
[https://galaxy.ansible.com/ui/namespaces/paloaltonetworks/ paloalto] | [https://galaxy.ansible.com/ui/namespaces/paloaltonetworks/ paloalto] | ||
+ | ===cloud=== | ||
+ | ====kvm==== | ||
+ | [https://docs.ansible.com/ansible/latest/collections/community/libvirt/virt_module.html KVM libvirt module] | ||
− | + | [https://thenathan.net/2022/09/30/ansible-libvirt-dynamic-inventory/ Ansible libvirt dynamic inventory] | |
− | + | [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-domain_commands-connecting_the_serial_console_for_the_guest_virtual_machine Connecting the Serial Console for the Guest Virtual Machine] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
[[category:ansible]] | [[category:ansible]] | ||
− | + | ||
[https://www.uni-koeln.de/~pbogusze/posts/Ansible_export_facts_to_simple_csv_file.html Ansible export facts to simple csv file] | [https://www.uni-koeln.de/~pbogusze/posts/Ansible_export_facts_to_simple_csv_file.html Ansible export facts to simple csv file] |
Latest revision as of 03:39, 24 June 2024
Contents |
installation
pip install ansible
variables
types
ansible.builtin.type_debug filter – show input data type
Adding variables to inventory
Connecting to hosts
Ansible Vault
Find out how to encrypt sensitive content in your inventory such as passwords and keys.
variable ansible_connection
listing connection types/plugins
$ ansible-doc -t connection -l kubectl Execute tasks in pods running on Kubernetes libvirt_lxc Run tasks in lxc containers via libvirt chroot Interact with local chroot psrp Run tasks over Microsoft PowerShell Remoting Protocol network_cli Use network_cli to run command on network appliances vmware_tools Execute tasks inside a VM via VMware Tools ssh connect via ssh client binary httpapi Use httpapi to run command on network appliances docker Run tasks in docker containers ...
playbooks
examples
- name: My first play hosts: myhosts tasks: - name: Print wall message ansible.builtin.command: /usr/bin/wall hello
- name: output test hosts: myhosts tasks: - name: run uname thru awk ansible.builtin.shell: /usr/bin/uname -a | awk '{print $NF}' register: results - debug: var: results.stdout
$ ansible-playbook -i inventory.ini shelltest.yaml PLAY [output test] ********************************************************************************************************************************
TASK [run uname thru awk] ************************************************************************************************************************* changed: [10.0.0.15]
TASK [debug] ************************************************************************************************************************************** ok: [10.0.0.15] => { "results.stdout": "GNU/Linux" }
PLAY RECAP **************************************************************************************************************************************** 10.0.0.15 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
programming
conditionals
loops
jinja2
output
parsing json
use community.general.json_query which uses jmespath
Selecting JSON data: JSON queries
writing to files
- name: output to file lineinfile: insertafter: EOF dest: "out.txt" line: "foo bar"
modules and plugins
Using Ansible modules and plugins
Difference between Modules and Plugins in Ansible
collections
Using collections Collections are a distribution format for Ansible content that can include playbooks, roles, modules, and plugins. As modules move from the core Ansible repository into collections, the module documentation will move to the collections pages.
use cases
network/security automation
platform modules (Maintained by Ansible Network Team)
checkpoint modules (gaia / mgmt)
fortinet
cloud
kvm
Ansible libvirt dynamic inventory