IT袋

当前位置:主页 > 经验教程 > 系统教程 >

Ansible安装配置和基本使用

Ansible安装配置和基本使用(4)

时间:2023-09-21 18:51:35 来源:IT袋 作者:苏晓敏
导读:Ansible安装配置和基本使用,,这两个命令就是ansible用来实现批量管里的关键。 ansible命令通常用于一次性或者临时的任务,一般一条命令即可实现任务。通常我们称这种方式为:ad

Ansible安装配置和基本使用

,这两个命令就是ansible用来实现批量管里的关键。

  • ansible命令通常用于一次性或者临时的任务,一般一条命令即可实现任务。通常我们称这种方式为:ad-hoc;
  • ansible-playbook主要是应用于针对大型项目的部署,需要通过多个yaml格式的文件(以yaml或者yml结尾)组合使用,所以一般需要进行提前规划目录,整合yaml文件。


接下来介绍几个比较常用的命令。

3.2.1 ansible-doc

该命令主要用于显示针对某个模块的使用方法的帮助信息。如果忘记了模块或者模块的用法,可以通过该命令快速查看。

ansible-doc [options][module...]
# 列出可用模块
-l,--list
# 显示指定模块的playbook片段
-s,--snippet
如:
# 列出所有模块
ansible-doc -l
 
# 查看指定模块帮助用法
ansible-doc copy
 
# 查看指定模块帮助用法[简化版的帮助]
ansible-doc -s copy

注意:在使用ansible批量管理操作之前,需要先对所有主机做一个免密认证,以确保每个被管理节点都能在ansible管理节点上通过ssh协议免密登录到被管理节点。


免密的三种实现方式:

  • 基于ssh-keygen + shell + sshpass`方法实现
  • 基于expect实现;
  • 基于ansible-playbook实现。


ad-hoc 方式常用参数说明:

  • --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 "*" -m ping
ansible 10.10.108.* -m ping
ansible "*srvs" -m ping
 
[root@ansible-srv1 ansible-example]# ansible "*" --list-hosts
  hosts (4):
    10.10.108.30
    10.10.108.31
    10.10.108.32
    10.10.108.33


使用逻辑或

[root@ansible-srv1 ansible-example]# ansible "websrvs:appsrvs" -m ping
10.10.108.31 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
10.10.108.32 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
10.10.108.33 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
10.10.108.30 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
[root@ansible-srv1 ansible-example]# ansible "10.10.108.30:10.10.108.33" -m ping
10.10.108.30 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
10.10.108.33 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

相关阅读