/usr/bin/ansible 主程序,临时命令执行工具
/usr/bin/ansible-doc 查看配置文档,模块功能查看工具
/usr/bin/ansible-galaxy上传/下载优秀代码或Roles模块的官网平台
/usr/bin/ansible-playbook定制自动化任务,编排剧本工具
/usr/bin/ansible-pull远程执行命令的工具
/usr/bin/ansible-vault文件加密工具
/usr/bin/ansible-console基于console界面与用户交互的执行工具
利用ansible实现管理的主要方式:
Ad-Hoc利用ansible命令,主要用于临时命令使用场景
Ansible-playbook 主要用于长期规划好的,大型项目的场景,需有前期的规划过程
1、ansible-doc
#列出所有模块
ansible-doc -l
#查看指定模块帮助用法
ansible-doc ping
#查看指定模块帮助用法
ansible-doc -s ping
2、ansible
利用sshpass 批量实现基于key验证
ssh-keygen -f /root/.ssh/id_rsa -P ' '
NET = 192.168.100
export SSHPASS=ZF
for ip in {1..200};do
sshpass -e ssh-copy-id $NET.$IP
done
格式:
ansible [-m module_name] [-a args]
选项说明:
--version #显示版本
-m module #指定模块,默认为command
-v #详细过程 -vv -vvv 更详细
--list-hosts #显示主要列表,可简写 --list
-k,--ask-pass #提示输入ssh连接密码,默认key验证
-C,--check #检查,并不执行
-T, --timeout=TIMEOUT #执行命令的超时时间,默认10s
-u,--user=REMOTE_USER #执行远程执行的用户
-b,--become #代替旧版本的sudo切换
--become-user=USERNAME #指定sudo的runas用户,默认为root
-K,--ask-become-pass #提示输入sudo时的口令
ansible all -m ping
或关系
ansible "websrvs:appsrvs" -m ping
逻辑与
ansible "websrvs:&appsrvs" -m ping
逻辑非
ansible 'websrvs:!appsrvs' -m ping
综合逻辑
ansible 'websrvs:dbsrvs:&appsrvs:!ftpsrvs' -m ping
正则表达式
ansible "~(web|db).*\.magedu\.com" -m ping
3、ansible-galaxy
此工具会连接https://galaxy.ansible.com 下载相应的roles
#列出所有已安装的galaxy
ansible-galaxy list
#安装galaxy
ansible-galaxy install geerlingguy.redis
#删除galaxy
ansible-galaxy remove geerlingguy.redis
4、ansible-pull
此工具会推送ansible的命令至远程,效率无限提升,对运维要求高
5、ansible-playbook
ansible-playbook hello.yml
---
- hosts: test
remote_user: root
tasks:
- name: hello
command: /usr/bin/wall hello world
6、ansible-vault
此工具用于加密解密yml文件
格式
ansible-valut [create|decrypt|edit|encrypt|rekey|veiw]
示例
ansible-valut encrypt hello.yml #加密
ansible-valut decrypt hello.yml #解密
ansible-valut view hello.yml #查看
ansible-valut edit hello.yml #编辑加密文件
ansible-valut rekey hello.yml #修改口令
ansible-valut create hello.yml #创建新文件
7、ansible-console
可交互式执行命令
提示符格式
执行用户@当前操作的主机组(当前操作的主机组数量)[f:并发数]$
常用子命令
设置并发数:forks n
切换组:cd 主机组
列出当前组主机列表:list
列出所有的内置命令:?或help
ansible-console
Welcome to the ansible console.
Type help or ? to list commands.
root@all (16)[f:5]$ list
192.217.250.176
192.217.250.14
192.217.250.26
192.217.250.46
192.217.250.71
192.217.250.38
192.217.250.39
192.217.250.11
192.217.250.50
192.217.250.94
192.217.250.6
192.217.250.34
192.217.250.57
192.217.250.90
192.217.250.186
192.217.250.187
root@all (16)[f:5]$ cd nginx
root@nginx (3)[f:5]$ list
192.217.250.11
192.217.250.50
192.217.250.94
root@nginx (3)[f:5]$ forks 10
root@nginx (3)[f:10]$