feisky

云计算、虚拟化与Linux技术笔记
随笔 - 1009, 文章 - 1, 评论 - 304, 阅读 - 277万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

集群工具ansible使用方法

Posted on   feisky  阅读(2846)  评论(0编辑  收藏  举报

 

ansible简介

ansible是与puppet、saltstack类似的集群管理工具,其优点是仅需要ssh和Python即可使用,而不像puppet、saltstack那样都需要客户端。与puppet类似,ansible也支持丰富的功能:

  • 批量执行
  • 支持模块化,支持playbook(相比puppet还是弱些)
  • 上手容易(puppet上手有门槛)
  • 权限控制

安装方法为:yum -y install ansiblepip install ansible

使用方法

在管理集群时,ansible需要先配置集群hosts列表以方便集群操作

$ cat /etc/ansible/hosts
[local]
# 配置密码登陆,需要ansible本机安装sshpass
192.168.213.135 ansible_ssh_user=root ansible_ssh_pass=root
[zabbix]
# 密钥登陆
172.17.0.2:49154 ansible_ssh_user=root
172.17.0.4:49155 ansible_ssh_user=root
[vpn]
172.17.0.10

测试连接登陆是否OK

$ ansible local -m ping
192.168.213.135 | success >> {
    "changed": false,
    "ping": "pong"
}

ansible常见用法为ansible host-pattern -m 模块 -a 命令,host-pattern类似于简化的正则表达式,而模块可以通过ansible-doc -l命令来查询。下面是一些常用模块的使用方法:

  • 安装软件:ansible local -m apt -a ‘name=gcc state=present’或者ansible local -m yum -a “name=nmap state=installed”
  • 执行命令:ansible local -m shell -a ‘uptime’
  • 拷贝文件:ansible local -m copy -a “src=/tmp/server dest=/tmp/server”
  • 文件属性:ansible local -m file -a “dest=/tmp/server mode=755 owner=root group=root”
    *

playbook

playbook是由一个或多个“play”组成的列表。play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色。 

一个简单的playbook配置如下:

- hosts: local
  remote_user: root
  tasks:
  - name: echo hi
    shell: echo "hi"

ansible还支持设置handlers,handlers是在执行tasks之后服务器发生变化之后可供调用的handler,使用起来如下:

# playbook.yml
---
- hosts: local  # hosts中指定
  remote_user: root  # 如果和当前用户一样,则无需指定
  tasks:
      - name: whoami
        copy: src=~/hosts dest=~/hosts.dest  #  本地拷贝到远端
        notify:  # 如果copy执行完之后~/hosts.dest文件发送了变化,则执行
            - clear copy  # 调用handler
  handlers:
      - name: clear copy
        shell: 'mv ~/hosts.dest hosts.del'  # 假装删除

参考文档

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2011-11-16 The u32 filter
2011-11-16 iostat使用方法
2009-11-16 Makefile全解析
2009-11-16 Linux常用操作命令整理
2009-11-16 Linux压缩与解压
2009-11-16 Linux磁盘管理
无觅相关文章插件,快速提升流量
点击右上角即可分享
微信分享提示