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 自动化运维工具相关推荐

  1. Linux安装ansible自动化运维工具

  2. Ansible自动化运维工具介绍

    介绍 Ansible自动化运维工具,是基于Python开发的,可以实现批量系统配置,批量程序部署.批量运行命令等等. ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ans ...

  3. Ansible自动化运维工具介绍与部署

    ansible自动化运维工具介绍与部署 文章目录 一.什么是自动化运维? 二.常用的自动化运维工具 2.1 Ansible 2.2 SaltStack 2.3 Puppet 2.4 三种自动化工具特点 ...

  4. 【Ansible自动化运维工具】Ansible变量之lookup生成变量方法

    [Ansible自动化运维工具]Ansible变量之lookup生成变量方法 一.lookup插件介绍 1.lookup简介 2.lookup使用场景 3.lookup获取的数据源 4.lookup的 ...

  5. ansible自动化运维工具

    ansible自动化运维工具 ansible自动化运维脚本工具 ansible自动化运维工具 一.ssh工作原理和基本命令 1.ssh原理 2.ssh的基本命令 二.anible 自动化运维工具 1. ...

  6. 大型企业中如何批量管理千万台服务器之ansible自动化运维工具详解 [⭐建议收藏⭐]

    文章目录 ansible 自动化运维工具 详解 关于作者 作者介绍 一.ansible 概述 1.1 ansible 概述 1.2 是什么要使用 ansible 1.3 ansible 功能 1.4 ...

  7. 【Ansible自动化运维工具】Ansible变量之Facts变量

    [Ansible自动化运维工具]Ansible变量之Facts变量 一.Ansible facts介绍 1.facts组件简介 2.facts组件的使用场景 二.Ansible facts的基本使用 ...

  8. ansible——自动化运维工具

    目录 ansible 简介 ansible 是什么? ansible 特点 ansible 架构图 ansible 任务执行 ansible 任务执行模式 ansible 执行流程 ansible 命 ...

  9. Ansible自动化运维工具使用

    概述 本文描述自动化运维工具 Ansible 的安装及基础使用方法,包含: Centos 下的安装 主机配置 Ad-Hoc command(命令行执行) Playbook (任务剧本) Ansible ...

  10. 16张图带你学会 Ansible 自动化运维工具

    作者 | yangyidba 来源 | https://mp.weixin.qq.com/s/vw_cQfPiBjSmkuMsCbXxeA Ansible 是近年来越来越火的一款开源运维自动化工具,通 ...

最新文章

  1. 前端新手学习记录2 -使用vscode编写个人网站首页
  2. js 判断字符串是否包含某字符串
  3. mybatis逆向工程生成的实体类和表不一致缺少某些字段或者出现其他字段
  4. QT的QDateTimeEdit类的使用
  5. Linux运维常用命令总结
  6. python链表怎么定义_python:链表定义以及实现
  7. 论文浅尝 | 基于对抗学习的弱监督知识图谱对齐
  8. 数据加载中,请稍等......
  9. 如何下载vSphere Big Data Extensions 1.0免费试用版
  10. 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第1节 网络通信概述_5_端口号...
  11. winqsb替代软件linux,winqsb软件64位-运筹学软件winqsb下载 v3.0免费版 附使用教程-下载啦...
  12. vue实现分屏_VUE视频怎么分镜 VUE视频如何进行分镜编(图文步骤)
  13. 用pe修复服务器系统,如何用PE修复系统
  14. 商品的spu、sku及其之间的关系
  15. 微信公众号开发相关问题
  16. 【文献翻译】软件设计级漏洞分类模型-Software Design Level Vulnerability Classification Mode
  17. 从中国金融的兴起,以后发展趋势变化分析
  18. 嵌入式系统知识和接口技术总结
  19. adb install 安装APK Failure INSTALL_FAILED_ALREADY_EXISTS Attempt to re-install without first
  20. Ubuntu安装NextCloud相关命令

热门文章

  1. 软工网络15团队作业4-DAY2
  2. vim 模式下的几个快捷用法
  3. Extjs grid增加或删除列后记住滚动条的位置
  4. sysservers 中找不到服务器,请执行 sp_addlinkedserver 将该服务器添加到sysserver
  5. 仓库管理软件,仓库管理系统,希创条码,wms仓库管理软件
  6. 每日一句 i'm by disposition one of life's neutrals,a human Switzerland
  7. 实现审批系统_我市工程建设项目审批系统实现与 省监管平台数据互联互通
  8. mysqli 语句和mysql语句一样吗_mysqli语句的用法
  9. 百度SEO之-关键词的种类
  10. LFS chroot后装glibc时编译出错/bin/sh: command substitution: line 3: syntax error near unexpected token `)