自动化运维之ansible的安装部署与命令模块(代码片段)

author author     2022-12-19     144

关键词:

  • Ansible简介

Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。

主要包括:

(1)连接插件connection plugins:负责和被监控端实现通信;

(2)host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;

(3)各种模块核心模块、command模块、自定义模块;

(4)借助于插件完成记录日志邮件等功能;

(5)playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

  • 搭建环境

管理端:centos7-1 192.168.177.145

被管理端:centos7-2 192.168.177.135

被管理端:centos7-3 192.168.177.132

Ansible安装

192.168.177.145:

# systemctl stop firewalld.service  //关闭防火墙
# setenforce 0
# yum install -y epel-release  //安装epel源
# yum install ansible -y   //安装Ansible
# vim /etc/ansible/hosts 
  [abc]
  192.168.177.135
  [mysql]
  192.168.177.132
# ssh-keygen -t rsa       //设置密钥对
# ssh-copy-id [email protected]
# ssh-copy-id [email protected]  //配置密钥对
# ssh-agent bash    //免交互代理
# ssh-add

技术分享图片
技术分享图片
技术分享图片
技术分享图片

192.168.177.135(另一台也一样):

# systemctl stop firewalld.service  //关闭防火墙
# setenforce 0
# cd ~/.ssh

技术分享图片

Ansible命令行模块

command模块

命令格式:ansible [主机] [-m 模块] [-a args]

# ansible 192.168.177.135 -m command -a ‘date‘   //指定ip执行date
# ansible mysql -a ‘date‘   //指定分类执行date

技术分享图片
技术分享图片

cron模块

用于定义任务计划

两种状态(state):present表示添加(可以省略),absent表示移除。

# ansible-doc -s cron      //查看cron模块信息
# ansible abc -m cron -a ‘minute="*/1" job="/usr/bin/echo nihao" name="test nihao"‘  //添加周期性计划任务
# ansible abc -a ‘crontab -l‘
# ansible abc -m cron -a ‘name="test nihao" state=absent‘   //移除计划任务,假如该计划任务没有取名字,name=None即可

技术分享图片
技术分享图片

user模块

用于创建新用户和更改删除已存在的用户

user模块是请求的是useradd, userdel, usermod三个指令

# ansible-doc -s user
# ansible mysql -m user -a ‘name=zhangsan‘  //创建zhangsan
# ansible mysql -m user -a ‘name=zhangsan state=absent‘   //删除zhangsan

技术分享图片
技术分享图片

group模块

对用户组进行管理

group模块请求的是groupadd, groupdel, groupmod 三个指令

# ansible mysql -m group -a ‘name=test gid=306 system=yes‘  //创建test组
# ansible mysql -m user -a ‘name=wang‘ //创建用户wang
# ansible mysql -m group -a ‘name=test1 gid=506 system=yes‘  //创建test1组
# ansible mysql -m user -a ‘name=wang uid=506 group=test1 system=yes‘ //将wang添加到test1组

技术分享图片
技术分享图片
技术分享图片

copy模块

用于实现文件复制和批量下发文件

# ansible-doc -s copy
# ansible abc -m copy -a ‘src=/etc/fstab dest=/opt/fstab.bk owner=root mode=644‘ //将/etc/fstab复制到被管理端/opt下
# ansible abc -a ‘cat /opt/fstab.bk‘ //查看

技术分享图片
技术分享图片

file模块

用于设置文件属性

# ansible mysql -m file -a ‘path=/opt/test.txt state=touch‘  //创建空文件
# ansible mysql -m file -a ‘path=/opt/test.txt owner=wang group=test1 mode=666‘   //设置文件的属主,属组和权限
# ansible mysql -m file -a ‘src=/opt/test.txt path=/opt/test.txt.link state=link‘  //创建链接性文件
# ansible mysql -m copy  -a ‘content="hello" dest=/opt/test.txt‘  //在test.txt中写入内容

技术分享图片
技术分享图片
技术分享图片
技术分享图片

ping模块

用于测试指定主机的连通性

# ansible all -m ping

技术分享图片

yum模块

# ansible abc -m yum -a ‘name=httpd‘ //yum安装httpd服务

技术分享图片

service模块

用来控制管理服务的运行状态

# ansible abc -m service -a ‘name=httpd enabled=true state=started‘  //开机自启动

技术分享图片
技术分享图片

shell模块

在被管理端运行命令

# ansible mysql -m shell -a ‘echo "abc123" | passwd --stdin wang‘  //创建密码

技术分享图片

script模块

将本地脚本复制到被管理端运行

# ansible-doc -s script
# vi /opt/test.sh
#!/bin/bash
echo "hello ansible from script"> /opt/script.txt
# chmod +x /opt/test.sh
# ansible mysql -m script -a ‘/opt/test.sh‘

技术分享图片

setup模块

# ansible mysql -m setup           //获取mysql组主机的facts信息

技术分享图片

自动化运维之ansible安装及命令使用(代码片段)

Ansible介绍ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于paramiko开发的,并且基于模块化工作,... 查看详情

安装部署自动化运维之ansible(代码片段)

...行或下发配置,无需部署任何客户端代理软件,从而使得自动化环境部署变得更加简单。可同时支持多台主机并行管理,使得管理主机更加便捷。Ansible核心组件ansible可以看做是一种基于模块进行工作的框架结构,批量部署能力... 查看详情

自动化运维之详细部署安装ansible服务(超简单)(代码片段)

简介:ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署... 查看详情

自动化运维之ansible安装与模块应用(代码片段)

自动化运维之AnsibleAnsible概述由于互联网快速展导致产品更新换代速度逐渐加快,运维人员每天都要进行大量维护操作,人就按照传统方式进行维护会使工作效率低下,只是,部署自动化运维就尽可能安全,高校的完成工作一般... 查看详情

走进自动化运维之ansible服务部署,附带(参数及模块)详解!(代码片段)

何为Ansible:简单的自动化运维管理工具,不需要配置代理工具,基于Python研发。Ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。自动化运维工具“三剑... 查看详情

自动化运维之ansible剑客参上(代码片段)

自动化运维之AnsibleAsible概述与核心组件Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible可以... 查看详情

自动化运维之ansible应用基础模块(超详细)(代码片段)

Ansible是一种基于模块进行工作的框架结构。批量部署能力就是由Ansible所运行的模块实现的。简而言之Ansible是基于“模块”完成各种“任务”的。Ansible常用的核心模块模块的基本语法如下ansible[主机][-m模块][-aargs]//命令格式#ansib... 查看详情

自动化运维之ansible(代码片段)

...行或下发配置,无需部署任何客户端代理软件,从而使得自动化环境部署变得更加简单。可同时支持多台主机并行管理,使得管理主机更加便捷。Ansible核心组件Ansible可以看作是一种基于模块进行工作的框架结构,批量部署能力... 查看详情

自动化运维之ansible安装及基本模块应用

...所以断电等异常一般不会影响ansbile。2.ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配 查看详情

自动化运维之ansible服务部署(代码片段)

...hon语言开发,巧妙的设计、实现了简单易用、功能强大的自动化管理工具。目前它已经广泛应用于各种规模、各个领域的企业。Ansible应用领域Ansible的编排引擎可以出色地完成配置管理、流程控制、资源部署等工作,与其他IT自... 查看详情

ansible自动化运维之配置清单inventory(代码片段)

Ansible配置清单InventoryAnsible部署Inventory简介Ansible配置文件的优先级Ansible命令常用参数演示环境Anisble参数使用简单示例构建Anisble清单ansible命令指定清单的正则表达式Ansible配置文件参数详解Ansible部署简单介绍、安装、简单部署可... 查看详情

自动化运维之ansible

大纲:   一、ansible是什么   二、ansible的特点   三、ansible的任务执行模式和执行流程   四、ansible的安装   五、ansible常用命令   六、ansible常用模块  查看详情

心领神会--自动化运维之ansible的核心概念,安装配置ansible并学会使用其常见模块。(代码片段)

自动化运维概述:现如今随着互联网的高速发展,传统运维方式效率太过低下,部署自动化运维可以安全高效的完成维护工作,成为当下运维的主要方式。一般会把自动化运维工具划分为两类:一类是需要使用代理工具的,也就... 查看详情

linux学习总结(七十四)自动化运维之ansible(代码片段)

一ansible介绍不需要安装客户端,通过sshd去通信基于模块工作,模块可以由任何语言开发不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读安装十分简单,centos上可直接yum安装有提供UI(浏览器图形化)www.a... 查看详情

自动化运维之ansible——安装配置

Ansible相对于其他自动化运维工具(saltstack、puppet)的优势:Ansible是一款轻量级框架,基于各个模块实现各种功能,模块可根据需要自行开发agentless无需安装agent,可根据具体情况建立一台操作机支持playbook剧本 python语言开发... 查看详情

自动化运维之ansible模块篇(代码片段)

Ansible简介一般会把自动化运维工具划分为两类:一类是是需要使用代理工具的,也是就基于专用的Agent程序来王朝管理功能,如:Puppet、Func、Zabbix等:另外一类是不需要代理工具的,可以直接基于SSH服务来完成管理功能,如Ansib... 查看详情

ansible自动化运维之ansible命令运行方式及常用参数和常用模块(代码片段)

Ansible常用模块ansible实现管理的方式演示环境Ad-Hoc执行方式获得帮助ansible命令运行方式及常用参数ansible输出不同颜色含义ansible中的常用模块1.command2.shell3.script4.copy5.fetch6.file7.archive8.unarchive9.hostname10.cron11.yum_repository12.dnf/yum13.s 查看详情

ansible自动化运维管理工具的概述与部署(代码片段)

Ansible自动化运维管理工具的概述与部署项目总体思路一、Ansible概述二、ansible环境安装部署三、ansible命令行模块1.command模块2.shell模块3.cron模块4.user模块5.group模块6.copy模块7.file模块8.hostname模块9.ping模块10.yum模块11.service/systemd模... 查看详情