Ansible概要与简单使用

Ansible概要与简单使用

1. Ansible名词解释

管理机:安装或者部署了Ansible的服务器(目前管理节点不支持windows系统)

受控节点:Ansible管理的服务器或者网络设备,也叫作"hosts",受控节点不需要安装Ansible

Inventory仓库:Inventory仓库是保存受控节点信息的列表,也叫作"hostfile",Inventory 仓库可以以 IP 的方式指定受控节点。 Inventory 同样可以组织管理节点、新增、嵌套组等方式,非常便于扩展。

Modules模块:Modules 模块是 Ansible 执行代码的最小单元。 每个模块都是特殊用途,从特殊类型的数据库用户管理,到特殊类型的网络设备 VLAN 接口管理。 你可以在通过执行单个任务调用一个模块,也可以通过 playbook 同时调用执行多个模块。

Tasks任务:Ansible 执行操作的最小单位。 ad-hoc 更适合临时执行命令的执行场景。

Playbooks:Playbooks 是任务列表的组合,通常会把常用的命令列表通过正确的语法写入到 playbook中。 Playbook 可以像普通 tasks 一样调用变量, 其使用 YAML 语法,便于读、写、分享、理解。

2. Ansible最基本的操作

  • 从 inventory 仓库中选择要执行命令的对象
  • 连接测试这些节点 ( 或者网络设备,或者其它受控节点)connects to those machines (or network devices, or other managed nodes)。 通常使用 SSH 的方式
  • 复制一个或多个模块到远程计算机并尝试执行

2.1 选择指定的机器执行

Ansible 是通过读取 Inventory 中的配置知道我们要对哪些机器变更。 虽然你可以在命令行使用 ad-hoc 临时命令时指定 IP 地址的方式来控制要操作的对象,但如果想充分使用 Ansible 的灵活性和或扩展性,你必须掌握 Inventory 的配置。

  • 创建/etc/ansible/hosts并添加一些主机列表,使用IP地址或者主机名
192.0.2.50
aserver.example.org
bserver.example.org
  • Ansible和远程主机之间是通过SSH protocol,默认 Ansible 使用开源软件 OpenSSh 通过当前用户连接远程主机。
  • 指定用户连接远程受控节点
1.在命令行使用 -u 指定用户
2.在 Inventory 是指定连接用户
3.在配置文件中设置连接用户
4.设置环境变量

2.2 Ansible体验

  • 使用ping模块测试主机是否在线
$ ansible all -m ping

# 如果遇到以下问题
192.0.2.50 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: Permission denied (publickey,password).",
    "unreachable": true
}
# 可以通过ssh-keygen一路回车,然后再ssh-copy-id 192.0.2.50 ,输入192.0.2.50登录密码即可

# 结果
192.0.2.50 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
  • 在所有节点上执行一条实时命令
$ ansible all -a "/bin/echo hello"

# 运行结果
192.0.2.50 | CHANGED | rc=0 >>
hello
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值