/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]$