工具 & 效率11 分钟阅读
Ansible 自动化命令 100 条
本文整理 ansible-core 常用的 100 条清单、Ad-hoc、Playbook、变量、Vault、Role、Galaxy、性能和排障命令。示例清单为 inventory.ini,生产环境应固定 Collection 版本,敏感变量使用 Vault 或外部密钥系统。
2026年8月19日阅读—点赞—收藏—
dba100ansible墨力计划
100 条命令系列文章专栏
本文整理 ansible-core 常用的 100 条清单、Ad-hoc、Playbook、变量、Vault、Role、Galaxy、性能和排障命令。示例清单为 inventory.ini,生产环境应固定 Collection 版本,敏感变量使用 Vault 或外部密钥系统。
本文整理 ansible-core 常用的 100 条清单、Ad-hoc、Playbook、变量、Vault、Role、Galaxy、性能和排障命令。示例清单为 inventory.ini,生产环境应固定 Collection 版本,敏感变量使用 Vault 或外部密钥系统。
1ansible --version1ansible-config dump --only-changed1ansible-config list1ansible-config view1ansible-config init --disabled > ansible.cfg1ansible-doc ansible.builtin.copy1ansible-doc -l1ansible-doc -s ansible.builtin.user1ansible-doc -t lookup -l1ansible-inventory --help1ansible-inventory -i inventory.ini --list1ansible-inventory -i inventory.ini --graph1ansible-inventory -i inventory.ini --host web11ansible-inventory -i inventory.ini --list >/dev/null1ansible-inventory -i inventory.yml --graph1ansible-inventory -i inventory/base -i inventory/prod --graph1ansible all -i '192.0.2.10,' -m ping1ansible 'web' -i inventory.ini --list-hosts1ansible 'all:!db' -i inventory.ini --list-hosts1ansible 'web:&prod' -i inventory.ini --list-hosts1ansible all -i inventory.ini -m ansible.builtin.ping1ansible all -i inventory.ini -u ops -m ping1ansible all -i inventory.ini --private-key ~/.ssh/id_ed25519 -m ping1ansible all -i inventory.ini -b -m command -a 'id'1ansible all -i inventory.ini -b --become-user=root -m command -a 'id'1ansible web -i inventory.ini -m ansible.builtin.setup1ansible web -i inventory.ini -m setup -a 'filter=ansible_distribution*'1ansible web -i inventory.ini -m setup -a 'filter=ansible_default_ipv4'1ansible all -i inventory.ini -T 10 -m ping1ansible web1 -i inventory.ini -m ping -vvvv1ansible web -i inventory.ini -m ansible.builtin.command -a 'uptime'1ansible web -i inventory.ini -m ansible.builtin.shell -a 'ps -ef | wc -l'1ansible web -i inventory.ini -m ansible.builtin.copy -a 'src=app.conf dest=/etc/app/app.conf mode=0640' -b1ansible web -i inventory.ini -m ansible.builtin.fetch -a 'src=/var/log/app.log dest=artifacts/ flat=no'1ansible web -i inventory.ini -m ansible.builtin.file -a 'path=/opt/app state=directory owner=app mode=0750' -b1ansible web -i inventory.ini -m ansible.builtin.package -a 'name=nginx state=present' -b1ansible web -i inventory.ini -m ansible.builtin.service -a 'name=nginx state=started enabled=true' -b1ansible all -i inventory.ini -m ansible.builtin.user -a 'name=app shell=/bin/bash state=present' -b1ansible web -i inventory.ini -m ansible.builtin.wait_for -a 'host=0.0.0.0 port=80 timeout=30'1ansible all -i inventory.ini -m command -a 'df -hT'1ansible-playbook -i inventory.ini site.yml1ansible-playbook -i inventory.ini site.yml --syntax-check1ansible-playbook -i inventory.ini site.yml --check1ansible-playbook -i inventory.ini site.yml --check --diff1ansible-playbook -i inventory.ini site.yml --list-tasks1ansible-playbook -i inventory.ini site.yml --list-tags1ansible-playbook -i inventory.ini site.yml --list-hosts1ansible-playbook -i inventory.ini site.yml --limit web11ansible-playbook -i inventory.ini site.yml --start-at-task 'Deploy config'1ansible-playbook -i inventory.ini site.yml --step1ansible-playbook -i inventory.ini site.yml --tags deploy1ansible-playbook -i inventory.ini site.yml --skip-tags restart1ansible-playbook -i inventory.ini deploy.yml -e app_version=1.2.31ansible-playbook -i inventory.ini deploy.yml -e '{"app_env":"prod","replicas":3}'1ansible-playbook -i inventory.ini deploy.yml -e @vars/prod.yml1ansible-playbook -i inventory.ini site.yml --forks 201ansible-playbook -i inventory.ini site.yml --ask-become-pass1ansible-playbook -i inventory.ini site.yml --ask-pass1ansible-playbook -i inventory.ini site.yml -vvv1ANSIBLE_LOCAL_TEMP=/tmp/ansible-local ansible-playbook -i inventory.ini site.yml1ansible-vault create group_vars/prod/vault.yml1ansible-vault view group_vars/prod/vault.yml1ansible-vault edit group_vars/prod/vault.yml1ansible-vault encrypt secrets.yml1ansible-vault decrypt secrets.yml1ansible-vault rekey secrets.yml1ansible-vault encrypt_string --name db_password1ansible-playbook -i inventory.ini site.yml --vault-password-file .vault-pass1ansible-playbook -i inventory.ini site.yml --vault-id prod@prompt1ansible-playbook -i inventory.ini site.yml --vault-id dev@dev-pass --vault-id prod@prompt1ansible-galaxy role init roles/web1ansible-galaxy role list1ansible-galaxy role install geerlingguy.nginx1ansible-galaxy role install -r requirements.yml1ansible-galaxy role remove geerlingguy.nginx1ansible-galaxy collection init acme.ops1ansible-galaxy collection list1ansible-galaxy collection install community.general1ansible-galaxy collection install -r requirements.yml1ansible-galaxy collection build collections/ansible_collections/acme/ops1ansible all -i inventory.ini -m debug -a 'var=hostvars[inventory_hostname]'1ansible all -i inventory.ini -m debug -a 'msg={{ inventory_hostname }}={{ ansible_host }}'1ANSIBLE_STDOUT_CALLBACK=json ansible-playbook -i inventory.ini site.yml1ANSIBLE_CALLBACKS_ENABLED=ansible.posix.profile_tasks ansible-playbook -i inventory.ini site.yml1ansible all -i inventory.ini -m setup -a 'gather_subset=min'1ansible all -i inventory.ini -m meta -a 'clear_facts'1ansible web1 -i inventory.ini -m debug -a 'var=app_version'1ansible all -i inventory.ini -m setup -a 'filter=ansible_memtotal_mb'1ansible localhost -c local -m template -a 'src=app.conf.j2 dest=/tmp/app.conf' --check --diff1ansible-lint site.yml1ansible-playbook -i inventory.ini deploy.yml -e serial_count=11ansible all -i inventory.ini -B 3600 -P 0 -m command -a '/opt/app/batch.sh'1ansible all -i inventory.ini -m async_status -a 'jid=JOB_ID'1ansible all -i inventory.ini -b -m reboot -a 'reboot_timeout=600'1ansible all -i inventory.ini -m wait_for_connection -a 'timeout=300'1ansible-playbook -i inventory.ini site.yml --check --diff --limit 'web:&prod'1ANSIBLE_LOG_PATH=artifacts/ansible.log ansible-playbook -i inventory.ini site.yml1ansible-playbook -i inventory.ini site.retry1ansible-inventory -i inventory.ini --list >/dev/null && ansible-playbook -i inventory.ini site.yml --syntax-check && ansible-lint site.yml1ansible-playbook -i inventory/prod site.yml --limit canary --check --diff --ask-vault-passAnsible 的关键不是把远程命令批量执行,而是让变更具备幂等、可审计、可预演和可回滚能力。生产发布应先做语法与 lint 检查,再对金丝雀主机执行 --check --diff,最后分批推进。