位置: 编程技术 - 正文
推荐整理分享Linux下的自动化运维工具ansible初探(linux自动化装机),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:linux自动化工具,linux自动化运维主要做什么,linux ui自动化,linux自动化脚本编写,linux自动化装机,linux 自动化,linux 自动化,linux ui自动化,内容如对您有帮助,希望把文章链接给更多的朋友!
一、什么样的情形需要批量部署
1、操作系统的安装
常见的有collber,red hat satelite(redhat)系统专用。
2、操作系统的配置
常见的有cfengine,puppet,chef,func。其中puppet最受欢迎
3、批量程序的部署
4、批量命令的运行查看状态信息
二、ansible介绍
ansible的架构大致如下ansible是新出现的运维工具是基于Python研发的糅合了众多老牌运维工具的优点实现了批量操作系统配置、批量程序的部署、批量运行命令等功能。
运维工具常见的工作模式 1、agent模式: 基于ssl实现。代理工作在被监控端。像puppet。 2、agentless模式: 基于ssh服务实现工作在被监控端。监控端是ssh的客户端。 ansible是工作在agentless模式下具有幂等性。ansible在控制端只需要告诉监控端的期望状态就可以实现批量部署。
名词解释 幂等性不会重复执行相同的指令。例如不会重复安装软件 期望状态只需要告诉被监控端的期望状态 ansible是基于模块工作的ansible本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块ansible只是提供一种框架。架构包括
连接插件connection plugins负责和被监控端实现通信。
Host Inventory:指定操作的主机,是一个配置文件里面定义监控的主机
各种模块核心模块command模块自定义模块
借助于插件完成记录日志邮件等功能
PlayBooks:剧本执行多个任务时。并非必需可以让节点一次性运行多个任务
三、基本使用方法 在管理集群时,ansible需要先配置集群hosts列表以方便集群操作复制代码代码如下: $ cat /etc/ansible/hosts[local]# 配置密码登陆,需要ansible本机安装sshpass... ansible_ssh_user=root ansible_ssh_pass=root[zabbix]# 密钥登陆..0.2: ansible_ssh_user=root..0.4: ansible_ssh_user=root[vpn]..0. 测试连接登陆是否OK复制代码代码如下: $ ansible local -m ping... | 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= 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' # 假装删除
在Linux系统上使用交换文件扩展swap空间的方法 想像一种情景,当我们的Linux系统用尽交换空间时,在这种情况下,我们想要使用swap分区扩展交换空间,但在某些情况下磁盘上已经没有可用的空闲分
在位的Ubuntu系统上安装位的WPS的方法
Linux系统中file命令的使用详解 命令简介:该命令用来识别文件类型,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来
标签: linux自动化装机
本文链接地址:https://www.jiuchutong.com/biancheng/353275.html 转载请保留说明!友情链接: 武汉网站建设