Linux之ansible 自动化运维工具
ansible 自动化运维工具 (可以同时控制多台主机做很多事) 基于python语言实现
只需要有一个主机 就可以给其他的主机部署任务
测试环境:
server1 主控端 192.168.109.134
server2 控制机 192.168.109.138
其他是基于ssh对目标进行管理 所以需要配置ssh的免密码登录
特点:1.部署简单 2.基于ssh对目标进行管理
3.主从集中化的管理 4.可以通过python进行api拓展 5.可以服务于云计算大数据平台
1.部署
主控端处
setenforce 0
systemctl stop firewalld
yum -y install epel-release.noarch
yum -y install ansible
ls /etc/ansible/
ansible.cfg是其配置文件
hosts是要控制的目标
roles是一个空的目录 后期用来存放剧本的
接下来做ssh的认证 配置ssh的免密码登录
ssh-keygen -t rsa
空密码
ssh-copy-id -i ./.ssh/id_rsa.pub root@[目标ip地址]
输入目标的登录密码即可
ssh root@[目标ip地址]
#此时已经可以实现免密码登录 因为空密码的密钥认证文件已经写到了目标计算机中
接下来需要添加被管理/控制的主机
vi /etc/ansible/hosts
客户机处
setenforce 0
systemctl stop firewalld
2.ansible常用模块
ansible client -m ping #测试client组是否可以ping通
ansible-doc -i #可以看到ansible支持的模块 按q可以结束
如上图所示 表名客户端/受控端成功
命令控制模块
在目标上执行命令
ansible client -m command -a "whoami"
ansible client -m command -a "pwd"
ansible client -m command -a "mkdir haha"
ansible client -m command -a "rm -rf ./haha"
touch test1.sh
nano test1.sh
-----------
ifconfig
mkdir nihao
-----------
ansible client -m script -a "./test1.sh" #远程主机执行本机sh的命令
#控制目标在目标上执行目标的sh文件 接下来进入server2去实验
touch test2.sh
vi test2.sh
-------
mkdir test2
-------
chmod 777 test2.sh
接下来回到server1
ansible client -m shell -a "./test2.sh"
拷贝模块
src是自己控制机器的目录文件 dest是目标受控机器的文件位置
#把自己本机的文件发送到目标组内的所有主机 并且赋予相应的权限
ansible client -m copy -a "src=./test1.sh dest=/tmp/ owner=root group=root mode=0755"
文件状态模块
ansible client -m stat -a "path=/etc/passwd" #获取/etc/passwd的文件状态
实现远程的下载
可以使用指定的地址去下载 force是覆盖与否
ansible client -m get_url -a "url=http://www.baidu.com dest=/root/index.html mode=0440 force=yes"
此时目标位置已经把百度的index.html成功进行了下载
软件包的管理 远程更新软件
可以让目标去远程更新软件
curl http://www.baidu.com
ansible client -m yum -a "name=curl state=latest"
进行crontab配置(可以做一个计划任务的定时)
双引号包单引号就行 不能重复双引号
ansible client -m cron -a "name='shijian1' hour='1,2' job='mkdir haha'"
crontab -l
远程服务的管理
ansible client -m service -a "name=nginx state=restart"
用户管理服务 使用user模块去自动添加用户
ansible client -m user -a "name=xiaoming comment='wo shi xiaoming'"
ansible client -m user -a "name=user1 password=123456 home=/home/user1 uid=1123 group=test1 comment='woshiuser1' system=yes"
删除系统用户 彻底删除 比较干净
ansible client -m user -a "name=user1 state=absent remove=yes"
基于yaml语法实现ansible剧本编写
yaml语法一般是用来编写playbooks 结尾是yml文件格式
特点:和python一样必须要对齐 而且只能用空格 不能用tab
核心组件:
1.tasks 任务
2.variables 变量
3.templates 模板
4.handlers 处理器
5.roles 角色
vi /root/t1.yml
- hosts: allremote_user: rootvars: httpd_port=80tasks:- name:anzhuang httpdyum:name=httpd state=present- name:anzhuang phpyum: name=php state=present- name:qidong apacheservice: name=httpd state=started enabled=true
vi /root/t2.yml
- host: clientremote_user: rootvars:username: user1password: 123456tasks:- name: tianjia yonghuuser: name={{ username }} state=present- name: tianjia mimashell: echo {{ password }} | passwd --stdin {{ username }}
ansible-playbook t2.yml --syntax-check #检查是否语法出错
ansible-playbook t2.yml #使用剧本去执行yml文件
vi /root/t3.yml
- name: baohanhosts:clientremote_user: roottasks:- include_tasks: /root/t2.yml
Linux之ansible 自动化运维工具相关推荐
- Linux安装ansible自动化运维工具
- Ansible自动化运维工具介绍
介绍 Ansible自动化运维工具,是基于Python开发的,可以实现批量系统配置,批量程序部署.批量运行命令等等. ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ans ...
- Ansible自动化运维工具介绍与部署
ansible自动化运维工具介绍与部署 文章目录 一.什么是自动化运维? 二.常用的自动化运维工具 2.1 Ansible 2.2 SaltStack 2.3 Puppet 2.4 三种自动化工具特点 ...
- 【Ansible自动化运维工具】Ansible变量之lookup生成变量方法
[Ansible自动化运维工具]Ansible变量之lookup生成变量方法 一.lookup插件介绍 1.lookup简介 2.lookup使用场景 3.lookup获取的数据源 4.lookup的 ...
- ansible自动化运维工具
ansible自动化运维工具 ansible自动化运维脚本工具 ansible自动化运维工具 一.ssh工作原理和基本命令 1.ssh原理 2.ssh的基本命令 二.anible 自动化运维工具 1. ...
- 大型企业中如何批量管理千万台服务器之ansible自动化运维工具详解 [⭐建议收藏⭐]
文章目录 ansible 自动化运维工具 详解 关于作者 作者介绍 一.ansible 概述 1.1 ansible 概述 1.2 是什么要使用 ansible 1.3 ansible 功能 1.4 ...
- 【Ansible自动化运维工具】Ansible变量之Facts变量
[Ansible自动化运维工具]Ansible变量之Facts变量 一.Ansible facts介绍 1.facts组件简介 2.facts组件的使用场景 二.Ansible facts的基本使用 ...
- ansible——自动化运维工具
目录 ansible 简介 ansible 是什么? ansible 特点 ansible 架构图 ansible 任务执行 ansible 任务执行模式 ansible 执行流程 ansible 命 ...
- Ansible自动化运维工具使用
概述 本文描述自动化运维工具 Ansible 的安装及基础使用方法,包含: Centos 下的安装 主机配置 Ad-Hoc command(命令行执行) Playbook (任务剧本) Ansible ...
- 16张图带你学会 Ansible 自动化运维工具
作者 | yangyidba 来源 | https://mp.weixin.qq.com/s/vw_cQfPiBjSmkuMsCbXxeA Ansible 是近年来越来越火的一款开源运维自动化工具,通 ...
最新文章
- 前端新手学习记录2 -使用vscode编写个人网站首页
- js 判断字符串是否包含某字符串
- mybatis逆向工程生成的实体类和表不一致缺少某些字段或者出现其他字段
- QT的QDateTimeEdit类的使用
- Linux运维常用命令总结
- python链表怎么定义_python:链表定义以及实现
- 论文浅尝 | 基于对抗学习的弱监督知识图谱对齐
- 数据加载中,请稍等......
- 如何下载vSphere Big Data Extensions 1.0免费试用版
- 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第1节 网络通信概述_5_端口号...
- winqsb替代软件linux,winqsb软件64位-运筹学软件winqsb下载 v3.0免费版 附使用教程-下载啦...
- vue实现分屏_VUE视频怎么分镜 VUE视频如何进行分镜编(图文步骤)
- 用pe修复服务器系统,如何用PE修复系统
- 商品的spu、sku及其之间的关系
- 微信公众号开发相关问题
- 【文献翻译】软件设计级漏洞分类模型-Software Design Level Vulnerability Classification Mode
- 从中国金融的兴起,以后发展趋势变化分析
- 嵌入式系统知识和接口技术总结
- adb install 安装APK Failure INSTALL_FAILED_ALREADY_EXISTS Attempt to re-install without first
- Ubuntu安装NextCloud相关命令
热门文章
- 软工网络15团队作业4-DAY2
- vim 模式下的几个快捷用法
- Extjs grid增加或删除列后记住滚动条的位置
- sysservers 中找不到服务器,请执行 sp_addlinkedserver 将该服务器添加到sysserver
- 仓库管理软件,仓库管理系统,希创条码,wms仓库管理软件
- 每日一句 i'm by disposition one of life's neutrals,a human Switzerland
- 实现审批系统_我市工程建设项目审批系统实现与 省监管平台数据互联互通
- mysqli 语句和mysql语句一样吗_mysqli语句的用法
- 百度SEO之-关键词的种类
- LFS chroot后装glibc时编译出错/bin/sh: command substitution: line 3: syntax error near unexpected token `)