{"id":51117,"date":"2025-07-31T12:07:30","date_gmt":"2025-07-31T12:07:30","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=51117"},"modified":"2025-07-31T12:07:30","modified_gmt":"2025-07-31T12:07:30","slug":"ansible-command-line-tools-with-example-in-ansible","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/ansible-command-line-tools-with-example-in-ansible\/","title":{"rendered":"Ansible: Command line tools with example in Ansible"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>1. ansible<\/strong><\/h1>\n\n\n\n<p><em>Run a single task (module) against hosts in your inventory. For quick, ad-hoc commands.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>General Syntax<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">ansible <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">host-pattern<\/span>&gt;<\/span> -m <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">module_name<\/span>&gt;<\/span> -a \"<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">module<\/span> <span class=\"hljs-attr\">arguments<\/span>&gt;<\/span>\" &#91;options]\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>Common Examples and All Key Combinations<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Example<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>ansible all -m ping<\/code><\/td><td>Ping all hosts using the &#8216;ping&#8217; module.<\/td><\/tr><tr><td><code>ansible webservers -m shell -a \"uptime\"<\/code><\/td><td>Run &#8216;uptime&#8217; shell command on &#8216;webservers&#8217; group.<\/td><\/tr><tr><td><code>ansible dbservers -m command -a \"df -h\"<\/code><\/td><td>Run &#8216;df -h&#8217; using command module (no shell features) on &#8216;dbservers&#8217;.<\/td><\/tr><tr><td><code>ansible localhost -m setup<\/code><\/td><td>Gather facts on localhost.<\/td><\/tr><tr><td><code>ansible all -m user -a \"name=john state=present\"<\/code><\/td><td>Create user &#8216;john&#8217; on all hosts.<\/td><\/tr><tr><td><code>ansible all -m copy -a \"src=foo.conf dest=\/etc\/foo.conf\"<\/code><\/td><td>Copy file to all hosts.<\/td><\/tr><tr><td><code>ansible all -m yum -a \"name=httpd state=latest\"<\/code><\/td><td>Install latest httpd via yum on all hosts.<\/td><\/tr><tr><td><code>ansible all -m service -a \"name=httpd state=restarted\"<\/code><\/td><td>Restart httpd service on all hosts.<\/td><\/tr><tr><td><code>ansible all -m file -a \"path=\/tmp\/testfile state=touch\"<\/code><\/td><td>Create empty file on all hosts.<\/td><\/tr><tr><td><code>ansible all -m get_url -a \"url=https:\/\/example.com\/file.tar.gz dest=\/tmp\/file.tar.gz\"<\/code><\/td><td>Download file from URL.<\/td><\/tr><tr><td><code>ansible all -m debug -a \"msg='Hello World'\"<\/code><\/td><td>Print debug message on all hosts.<\/td><\/tr><tr><td><code>ansible all -a \"uname -a\"<\/code><\/td><td>Run shell command directly (shell module by default if -m is omitted).<\/td><\/tr><tr><td><code>ansible all -b -m apt -a \"name=nginx state=present\"<\/code><\/td><td>Install nginx with privilege escalation (sudo).<\/td><\/tr><tr><td><code>ansible all -u admin -m ping<\/code><\/td><td>Run ping module as user &#8216;admin&#8217;.<\/td><\/tr><tr><td><code>ansible all --list-hosts<\/code><\/td><td>List hosts targeted by pattern.<\/td><\/tr><tr><td><code>ansible all --limit dbservers -m ping<\/code><\/td><td>Limit run to only dbservers.<\/td><\/tr><tr><td><code>ansible all --check -m yum -a \"name=git state=present\"<\/code><\/td><td>Dry run (check mode).<\/td><\/tr><tr><td><code>ansible all -m command -a \"ls -l \/tmp\" -v<\/code><\/td><td>Run command with verbose output.<\/td><\/tr><tr><td><code>ansible all -m raw -a \"uptime\"<\/code><\/td><td>Run raw command (no Python required on remote).<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>2. ansible-playbook<\/strong><\/h1>\n\n\n\n<p><em>Run complex multi-step playbooks written in YAML.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>General Syntax<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">ansible-playbook<\/span> &lt;<span class=\"hljs-selector-tag\">playbook<\/span><span class=\"hljs-selector-class\">.yml<\/span>&gt; <span class=\"hljs-selector-attr\">&#91;options]<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>All Example Combinations<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Example<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>ansible-playbook site.yml<\/code><\/td><td>Run &#8216;site.yml&#8217; playbook.<\/td><\/tr><tr><td><code>ansible-playbook -i inventory.yml site.yml<\/code><\/td><td>Specify a custom inventory.<\/td><\/tr><tr><td><code>ansible-playbook -l webservers site.yml<\/code><\/td><td>Limit run to webservers group.<\/td><\/tr><tr><td><code>ansible-playbook -u deployer site.yml<\/code><\/td><td>Run playbook as &#8216;deployer&#8217; user.<\/td><\/tr><tr><td><code>ansible-playbook -b site.yml<\/code><\/td><td>Run with privilege escalation (sudo\/become).<\/td><\/tr><tr><td><code>ansible-playbook -k site.yml<\/code><\/td><td>Ask for SSH password.<\/td><\/tr><tr><td><code>ansible-playbook -K site.yml<\/code><\/td><td>Ask for privilege escalation password.<\/td><\/tr><tr><td><code>ansible-playbook --check site.yml<\/code><\/td><td>Dry run; don&#8217;t change anything.<\/td><\/tr><tr><td><code>ansible-playbook --diff site.yml<\/code><\/td><td>Show diff when files change.<\/td><\/tr><tr><td><code>ansible-playbook --start-at-task=\"Install packages\" site.yml<\/code><\/td><td>Start at named task.<\/td><\/tr><tr><td><code>ansible-playbook -e var=value site.yml<\/code><\/td><td>Set extra variable.<\/td><\/tr><tr><td><code>ansible-playbook -e @vars.yml site.yml<\/code><\/td><td>Load extra vars from YAML file.<\/td><\/tr><tr><td><code>ansible-playbook --tags \"setup,install\" site.yml<\/code><\/td><td>Run only tasks with these tags.<\/td><\/tr><tr><td><code>ansible-playbook --skip-tags \"test\" site.yml<\/code><\/td><td>Skip tasks with these tags.<\/td><\/tr><tr><td><code>ansible-playbook --step site.yml<\/code><\/td><td>Step through each task interactively.<\/td><\/tr><tr><td><code>ansible-playbook -v site.yml<\/code><\/td><td>Verbose mode (single -v, -vv, -vvv for more).<\/td><\/tr><tr><td><code>ansible-playbook --syntax-check site.yml<\/code><\/td><td>Check playbook syntax only.<\/td><\/tr><tr><td><code>ansible-playbook --list-hosts site.yml<\/code><\/td><td>Show which hosts would be affected.<\/td><\/tr><tr><td><code>ansible-playbook --list-tasks site.yml<\/code><\/td><td>List all tasks.<\/td><\/tr><tr><td><code>ansible-playbook --list-tags site.yml<\/code><\/td><td>List all tags.<\/td><\/tr><tr><td><code>ansible-playbook --flush-cache site.yml<\/code><\/td><td>Flush fact cache before run.<\/td><\/tr><tr><td><code>ansible-playbook --forks 20 site.yml<\/code><\/td><td>Set number of parallel processes.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>3. ansible-galaxy<\/strong><\/h1>\n\n\n\n<p><em>Install, manage, and create roles and collections.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>General Syntax<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">ansible-galaxy <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">subcommand<\/span>&gt;<\/span> &#91;options]\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>All Example Combinations<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Example<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>ansible-galaxy install geerlingguy.nginx<\/code><\/td><td>Install a role from Ansible Galaxy.<\/td><\/tr><tr><td><code>ansible-galaxy install -r requirements.yml<\/code><\/td><td>Install multiple roles from requirements file.<\/td><\/tr><tr><td><code>ansible-galaxy list<\/code><\/td><td>List installed roles.<\/td><\/tr><tr><td><code>ansible-galaxy remove geerlingguy.nginx<\/code><\/td><td>Remove an installed role.<\/td><\/tr><tr><td><code>ansible-galaxy init myrole<\/code><\/td><td>Scaffold a new role called myrole.<\/td><\/tr><tr><td><code>ansible-galaxy collection install community.general<\/code><\/td><td>Install a collection from Galaxy.<\/td><\/tr><tr><td><code>ansible-galaxy collection install -r collections\/requirements.yml<\/code><\/td><td>Install collections from requirements.<\/td><\/tr><tr><td><code>ansible-galaxy collection list<\/code><\/td><td>List installed collections.<\/td><\/tr><tr><td><code>ansible-galaxy collection init my_namespace.my_collection<\/code><\/td><td>Scaffold a new collection.<\/td><\/tr><tr><td><code>ansible-galaxy role search nginx<\/code><\/td><td>Search roles by keyword.<\/td><\/tr><tr><td><code>ansible-galaxy collection search kubernetes<\/code><\/td><td>Search collections by keyword.<\/td><\/tr><tr><td><code>ansible-galaxy role info geerlingguy.nginx<\/code><\/td><td>Show details for a role.<\/td><\/tr><tr><td><code>ansible-galaxy collection info community.general<\/code><\/td><td>Show details for a collection.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>4. ansible-vault<\/strong><\/h1>\n\n\n\n<p><em>Encrypt, decrypt, edit, and manage secrets.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>General Syntax<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">ansible-vault <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">command<\/span>&gt;<\/span> &#91;options] <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">file<\/span>&gt;<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>All Example Combinations<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Example<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>ansible-vault create secrets.yml<\/code><\/td><td>Create a new encrypted file.<\/td><\/tr><tr><td><code>ansible-vault edit secrets.yml<\/code><\/td><td>Edit encrypted file in-place.<\/td><\/tr><tr><td><code>ansible-vault view secrets.yml<\/code><\/td><td>View contents of an encrypted file.<\/td><\/tr><tr><td><code>ansible-vault encrypt file.yml<\/code><\/td><td>Encrypt a plaintext file.<\/td><\/tr><tr><td><code>ansible-vault decrypt secrets.yml<\/code><\/td><td>Decrypt file to plaintext.<\/td><\/tr><tr><td><code>ansible-vault rekey secrets.yml<\/code><\/td><td>Change the password on the encrypted file.<\/td><\/tr><tr><td><code>ansible-vault encrypt_string 'supersecret' --name 'my_secret'<\/code><\/td><td>Output an encrypted string for use in playbooks.<\/td><\/tr><tr><td><code>ansible-vault encrypt --vault-password-file ~\/.vault_pass.txt secrets.yml<\/code><\/td><td>Encrypt with a password file.<\/td><\/tr><tr><td><code>ansible-vault decrypt --vault-password-file ~\/.vault_pass.txt secrets.yml<\/code><\/td><td>Decrypt with a password file.<\/td><\/tr><tr><td><code>ansible-playbook --ask-vault-pass site.yml<\/code><\/td><td>Prompt for vault password when running a playbook.<\/td><\/tr><tr><td><code>ansible-playbook --vault-password-file ~\/.vault_pass.txt site.yml<\/code><\/td><td>Use password file for vault.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>5. ansible-doc<\/strong><\/h1>\n\n\n\n<p><em>Display documentation and examples for modules and plugins.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>General Syntax<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">ansible-doc <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">module_name<\/span>&gt;<\/span> &#91;options]\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>All Example Combinations<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Example<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>ansible-doc ping<\/code><\/td><td>Show documentation for ping module.<\/td><\/tr><tr><td><code>ansible-doc -l<\/code><\/td><td>List all available modules.<\/td><\/tr><tr><td><code>ansible-doc -s file<\/code><\/td><td>Show minimal argument spec for file module.<\/td><\/tr><tr><td><code>ansible-doc -M .\/library custom_module<\/code><\/td><td>Show doc for module in custom library dir.<\/td><\/tr><tr><td><code>ansible-doc -t lookup file<\/code><\/td><td>Show lookup plugin documentation.<\/td><\/tr><tr><td><code>ansible-doc --playbook-dir=.\/roles\/<\/code><\/td><td>Specify playbook directory context.<\/td><\/tr><tr><td><code>ansible-doc --json<\/code><\/td><td>Output module docs in JSON format.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>6. ansible-inventory<\/strong><\/h1>\n\n\n\n<p><em>Manage, validate, and display inventory.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>General Syntax<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">ansible-inventory<\/span> <span class=\"hljs-selector-attr\">&#91;options]<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>All Example Combinations<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Example<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>ansible-inventory --list<\/code><\/td><td>List all hosts and groups in JSON.<\/td><\/tr><tr><td><code>ansible-inventory --graph<\/code><\/td><td>Show inventory as a graph.<\/td><\/tr><tr><td><code>ansible-inventory --host &lt;hostname&gt;<\/code><\/td><td>Show variables for a specific host.<\/td><\/tr><tr><td><code>ansible-inventory -i hosts.ini --list<\/code><\/td><td>List inventory from a specific file.<\/td><\/tr><tr><td><code>ansible-inventory -i inventory.yml --graph<\/code><\/td><td>Graph from YAML inventory.<\/td><\/tr><tr><td><code>ansible-inventory -i aws_ec2.yaml --list<\/code><\/td><td>Use dynamic inventory.<\/td><\/tr><tr><td><code>ansible-inventory --yaml<\/code><\/td><td>Output inventory as YAML.<\/td><\/tr><tr><td><code>ansible-inventory --vars<\/code><\/td><td>Include vars in output.<\/td><\/tr><tr><td><code>ansible-inventory --export<\/code><\/td><td>Export inventory for external use.<\/td><\/tr><tr><td><code>ansible-inventory --help<\/code><\/td><td>Show all options.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>7. ansible-pull<\/strong><\/h1>\n\n\n\n<p><em>Run playbooks in &#8220;pull&#8221; mode (nodes pull playbooks instead of being pushed).<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>General Syntax<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">ansible-pull<\/span> <span class=\"hljs-selector-tag\">-U<\/span> &lt;<span class=\"hljs-selector-tag\">repo_url<\/span>&gt; <span class=\"hljs-selector-attr\">&#91;playbook.yml]<\/span> <span class=\"hljs-selector-attr\">&#91;options]<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>All Example Combinations<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Example<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>ansible-pull -U https:\/\/github.com\/example\/repo.git<\/code><\/td><td>Pull and run playbook from git repo.<\/td><\/tr><tr><td><code>ansible-pull -U https:\/\/github.com\/example\/repo.git playbook.yml<\/code><\/td><td>Pull and run specific playbook.<\/td><\/tr><tr><td><code>ansible-pull -U https:\/\/github.com\/example\/repo.git -i localhost,<\/code><\/td><td>Specify inventory (e.g., localhost only).<\/td><\/tr><tr><td><code>ansible-pull -U https:\/\/github.com\/example\/repo.git -d \/tmp\/checkout<\/code><\/td><td>Specify checkout directory.<\/td><\/tr><tr><td><code>ansible-pull -U https:\/\/github.com\/example\/repo.git -C dev<\/code><\/td><td>Checkout a specific branch.<\/td><\/tr><tr><td><code>ansible-pull -U https:\/\/github.com\/example\/repo.git -e \"var=value\"<\/code><\/td><td>Pass extra variables.<\/td><\/tr><tr><td><code>ansible-pull -U https:\/\/github.com\/example\/repo.git --accept-host-key<\/code><\/td><td>Auto-accept git SSH keys.<\/td><\/tr><tr><td><code>ansible-pull -U https:\/\/github.com\/example\/repo.git -v<\/code><\/td><td>Verbose mode.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>8. ansible-config<\/strong><\/h1>\n\n\n\n<p><em>View and manage Ansible config settings.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>General Syntax<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">ansible-config <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">subcommand<\/span>&gt;<\/span> &#91;options]\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>All Example Combinations<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Example<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>ansible-config view<\/code><\/td><td>Show current config settings.<\/td><\/tr><tr><td><code>ansible-config list<\/code><\/td><td>List all config options and their defaults.<\/td><\/tr><tr><td><code>ansible-config dump<\/code><\/td><td>Dump config settings (shows source of each).<\/td><\/tr><tr><td><code>ansible-config init --disabled &gt; ansible.cfg<\/code><\/td><td>Generate a commented ansible.cfg template.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>9. ansible-console<\/strong><\/h1>\n\n\n\n<p><em>An interactive shell for running Ansible ad-hoc commands.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>General Syntax<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">ansible-console<\/span> <span class=\"hljs-selector-attr\">&#91;host-pattern]<\/span> <span class=\"hljs-selector-attr\">&#91;options]<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>All Example Combinations<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Example<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>ansible-console<\/code><\/td><td>Start interactive console (all hosts).<\/td><\/tr><tr><td><code>ansible-console webservers<\/code><\/td><td>Limit to webservers group.<\/td><\/tr><tr><td><code>ansible-console --inventory inventory.yml<\/code><\/td><td>Use a custom inventory.<\/td><\/tr><tr><td><code>ansible-console --become<\/code><\/td><td>Run with privilege escalation.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><em>Once inside the console:<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>> ping<\/code><\/li>\n\n\n\n<li><code>> shell uname -a<\/code><\/li>\n\n\n\n<li><code>> apt name=git state=present<\/code><\/li>\n\n\n\n<li><code>> exit<\/code><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>10. ansible-connection<\/strong><\/h1>\n\n\n\n<p><em>Internal, used to manage connection plugins (rarely used directly).<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>General Syntax<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">ansible-connection <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">subcommand<\/span>&gt;<\/span> &#91;options]\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>All Example Combinations<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Example<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>ansible-connection -h<\/code><\/td><td>Show help and available subcommands.<\/td><\/tr><tr><td><code>ansible-connection password<\/code><\/td><td>Show password subcommand (used by connection plugins).<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>BONUS: Module Examples (Most Common Patterns)<\/strong><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1. Command module<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">- name: <span class=\"hljs-keyword\">List<\/span> directory\n  ansible.builtin.command:\n    cmd: ls -l \/tmp\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\"><strong>2. Shell module<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">- name: Run shell <span class=\"hljs-keyword\">with<\/span> pipe\n  ansible.builtin.shell: <span class=\"hljs-string\">\"cat \/etc\/passwd | grep root\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\"><strong>3. Copy module<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">- name: Copy config file\n  ansible.builtin.copy:\n    src: .\/nginx.conf\n    <span class=\"hljs-attr\">dest<\/span>: <span class=\"hljs-regexp\">\/etc\/<\/span>nginx\/nginx.conf\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\"><strong>4. Template module<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">- name: Deploy config <span class=\"hljs-keyword\">from<\/span> template\n  ansible.builtin.template:\n    src: .\/app.conf.j2\n    <span class=\"hljs-attr\">dest<\/span>: <span class=\"hljs-regexp\">\/etc\/my<\/span>app\/app.conf\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\"><strong>5. File module<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">- name: <span class=\"hljs-built_in\">Set<\/span> permissions\n  ansible.builtin.file:\n    path: <span class=\"hljs-regexp\">\/opt\/<\/span>foo\n    <span class=\"hljs-attr\">state<\/span>: directory\n    <span class=\"hljs-attr\">mode<\/span>: <span class=\"hljs-string\">'0755'<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\"><strong>6. Service module<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">-<\/span> <span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">Ensure<\/span> <span class=\"hljs-selector-tag\">nginx<\/span> <span class=\"hljs-selector-tag\">is<\/span> <span class=\"hljs-selector-tag\">running<\/span>\n  <span class=\"hljs-selector-tag\">ansible<\/span><span class=\"hljs-selector-class\">.builtin<\/span><span class=\"hljs-selector-class\">.service<\/span>:\n    <span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">nginx<\/span>\n    <span class=\"hljs-selector-tag\">state<\/span>: <span class=\"hljs-selector-tag\">started<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\"><strong>7. User module<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">-<\/span> <span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">Add<\/span> <span class=\"hljs-selector-tag\">user<\/span>\n  <span class=\"hljs-selector-tag\">ansible<\/span><span class=\"hljs-selector-class\">.builtin<\/span><span class=\"hljs-selector-class\">.user<\/span>:\n    <span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">deploy<\/span>\n    <span class=\"hljs-selector-tag\">groups<\/span>: <span class=\"hljs-selector-tag\">sudo<\/span>\n    <span class=\"hljs-selector-tag\">state<\/span>: <span class=\"hljs-selector-tag\">present<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\"><strong>8. Package modules (apt\/yum\/dnf)<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">-<\/span> <span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">Install<\/span> <span class=\"hljs-selector-tag\">nginx<\/span> (<span class=\"hljs-selector-tag\">Debian<\/span>)\n  <span class=\"hljs-selector-tag\">ansible<\/span><span class=\"hljs-selector-class\">.builtin<\/span><span class=\"hljs-selector-class\">.apt<\/span>:\n    <span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">nginx<\/span>\n    <span class=\"hljs-selector-tag\">state<\/span>: <span class=\"hljs-selector-tag\">latest<\/span>\n\n<span class=\"hljs-selector-tag\">-<\/span> <span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">Install<\/span> <span class=\"hljs-selector-tag\">nginx<\/span> (<span class=\"hljs-selector-tag\">RHEL<\/span>)\n  <span class=\"hljs-selector-tag\">ansible<\/span><span class=\"hljs-selector-class\">.builtin<\/span><span class=\"hljs-selector-class\">.yum<\/span>:\n    <span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">nginx<\/span>\n    <span class=\"hljs-selector-tag\">state<\/span>: <span class=\"hljs-selector-tag\">latest<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\"><strong>9. Git module<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">- name: Clone a repo\n  ansible.builtin.git:\n    repo: <span class=\"hljs-string\">'https:\/\/github.com\/example\/project.git'<\/span>\n    <span class=\"hljs-attr\">dest<\/span>: <span class=\"hljs-regexp\">\/opt\/<\/span>app\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>Summary Table<\/strong><\/h1>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Tool\/Module<\/th><th>Example Syntax\/Usage<\/th><\/tr><\/thead><tbody><tr><td>ansible<\/td><td><code>ansible all -m ping<\/code><\/td><\/tr><tr><td>ansible-playbook<\/td><td><code>ansible-playbook -i hosts site.yml<\/code><\/td><\/tr><tr><td>ansible-galaxy<\/td><td><code>ansible-galaxy install geerlingguy.nginx<\/code><\/td><\/tr><tr><td>ansible-vault<\/td><td><code>ansible-vault encrypt secrets.yml<\/code><\/td><\/tr><tr><td>ansible-doc<\/td><td><code>ansible-doc file<\/code><\/td><\/tr><tr><td>ansible-inventory<\/td><td><code>ansible-inventory --list<\/code><\/td><\/tr><tr><td>ansible-pull<\/td><td><code>ansible-pull -U https:\/\/github.com\/example\/repo.git<\/code><\/td><\/tr><tr><td>ansible-config<\/td><td><code>ansible-config view<\/code><\/td><\/tr><tr><td>ansible-console<\/td><td><code>ansible-console webservers<\/code><\/td><\/tr><tr><td>ansible-connection<\/td><td><code>ansible-connection -h<\/code><\/td><\/tr><tr><td>Common modules<\/td><td><code>command<\/code>, <code>shell<\/code>, <code>copy<\/code>, <code>template<\/code>, <code>file<\/code>, <code>service<\/code>, <code>user<\/code>, <code>apt<\/code>, <code>yum<\/code>, <code>git<\/code>, etc.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. ansible Run a single task (module) against hosts in your inventory. For quick, ad-hoc commands. General Syntax Common Examples and All Key Combinations Example Description ansible all -m ping&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-51117","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/51117","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=51117"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/51117\/revisions"}],"predecessor-version":[{"id":51118,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/51117\/revisions\/51118"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=51117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=51117"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=51117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}