Ansible常用命令
ansible
命令 | 含义 |
---|---|
ansible all -m copy -a "src=/root/backup.sh dest=/root/" | 复制 |
ansible all -m copy -a"content='hello\nworld' dest=/tmp/test.ansible mode=640" | 写入文件内容 |
ansible all -m shell -a "systemctl restart gocronitor" | 运行命令 |
ansible all -m command -a "ifconfig" | 运行命令 |
ansible all -m ping | 检测主机连接 |
ansible '*' -m file -a "dest=/tmp/t.sh mode=755 owner=root group=root" | 指定节点上的权限,属主和数组为root |
ansible '*' -m file -a "dest=/tmp/test state=directory" | 创建文件夹 |
ansible all -m file -a "path=/tmp/test state=absent" | 删除文件 |
ansible '' -m cron -a 'name="custom job" minute=/3 hour=* day=* month=* weekday=* job="/usr/sbin/ntpdate 172.16.254.139"' | 指定节点上定义一个计划任务,每隔3分钟到主控端更新一次时间 |
ansible all -m group -a 'gid=2017 name=a state=present system=no' | 指定节点上创建一个组名为aaa,gid为2017的组 |
ansible all -m user -a 'name=aaa groups=aaa state=present' | 在节点上创建一个用户aaa,组为aaa |
ansible all -m user -a 'name=aaa groups=aaa remove=yes' | 删除用户示例 |
ansible all -m yum -a "state=present name=httpd" | 在节点上安装httpd |
ansible all -m service -a 'name=httpd state=started enabled=yes' | 在节点上启动服务,并开机自启动 |
ansible '*' -m script -a '/root/test.sh' | 执行主控端脚本 |
ansible '*' -m shell -a 'ps aux ' | 执行远程主机的脚本 |
ansible '*' -m raw -a "awk '{print $2}'" | 类似shell |
ansible '*' -m file -a "src=/etc/resolv.conf dest=/tmp/resolv.conf state=link" | 创建软链接 |
ansible '*' -m file -a "path=/tmp/resolv.conf state=absent" | 删除软链接 |
ansible '*' -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=root group=root mode=0644" | 复制文件到远程服务器 |
ansible all -m raw -a 'hostname' | 在节点上运行hostname |
ansible all -m get_url -a 'url=http://10.1.1.116/favicon.ico dest=/tmp' | 将指定url上的文件下载到/tmp下 |
ansible all -m synchronize -a 'src=/root/a dest=/tmp/ compress=yes' | 将主控方/root/a目录推送到指定节点的/tmp目录下 |
ansible 10.1.1.113 -m synchronize -a 'mode=pull src=/tmp/a dest=/root/' | 将10.1.1.113节点的/tmp/a目录拉取到主控节点的/root目录下 |
ansible-doc -s service | 获取帮助信息 |
ansible 192.66.255.130 -m setup | 在主机上收集属性信息的集合,收集变量 |
ansible-doc -s setup | 收集每个管控主机的facts变量 |
ansible 172.16.0.67 -m setup | 收集主机的变量 |
ansible-playbook
# ansible-playbook playbook.yml #基本执行
# ansible-playbook playbook.yml --check #模拟执行 Playbook,显示将要发生的变化,但不实际执行
# ansible-playbook playbook.yml -C #模拟执行 Playbook
# ansible-playbook first.yml --syntax-check #检查yaml文件的语法是否正确
# ansible-playbook first.yml --list-task #列出tasks任务
# ansible-playbook first.yml --list-hosts #检查生效的主机
# ansible-playbook first.yml --start-at-task='Copy Nginx.conf' #指定从某个task开始运行
# ansible-playbook first.yml -k #用来交互输入ssh密码
# ansible-playbook first.yml -K #用来交互输入sudo密码
# ansible-playbook first.yml -u #指定用户
# ansible-playbook playbook.yml -e "var1=value1 var2=value2" #从命令行传递额外的变量
# ansible-playbook playbook.yml --extra-vars "@vars_file.yml" #从YAML文件中加载额外的变量
# ansible-playbook playbook.yml --limit "host1,host2" #限制 Playbook 只在指定的主机上执行
# ansible-playbook playbook.yml --tags "tag1,tag2" #只执行带有指定标签的任务
# ansible-playbook playbook.yml --skip-tags "tag1,tag2" #执行所有任务,但跳过带有指定标签的任务。
# ansible-playbook playbook.yml --private-key /path/to/private_key #指定用于 SSH 连接的私钥文件。
# ansible-playbook playbook.yml --connection=local #指定连接方法,如 local、ssh 等。
# ansible-playbook playbook.yml --user=username #指定连接到远程主机时使用的用户名。
# ansible-playbook playbook.yml --ask-pass #执行时提示输入远程主机的密码
# ansible-playbook playbook.yml --ask-sudo-pass #提示输入 sudo 密码,以便以 root 权限执行任务。
# ansible-playbook playbook.yml --forks 5 #指定同时运行的任务数量,以提高执行效率。
# ansible-playbook playbook.yml -v #提供更详细的输出信息。
# ansible-playbook playbook.yml -vvv #提供更详细的调试信息,最多可以添加四个 v 来增加详细程度。
# ansible-playbook playbook.yml --start-at-task "Task Name" #从指定的任务名称开始执行 Playbook。
# ansible-playbook playbook.yml --any-errors-fatal #继续执行后续任务,即使当前任务失败。