Linux:ansible自动化运维工具

这篇具有很好参考价值的文章主要介绍了Linux:ansible自动化运维工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境介绍

当前所有执行权限我是在root下执行的,如果提示权限之类的,可以在每句命令前  加上 sudo   

ansible主服务器  192.168.0.194        

另外两个客户端分别为 192.168.0.193   192.168.0.192

软件只需要在主服务器上安装,客户端不需要去安装软件,因为他们相互使用的是ssh

只需要在主服务器上安装好软件,然后生成一个密钥发送至客户端,实现,主服务器免密ssh连接客户机即可


安装ansible

在主服务器上进行软件安装 

rm -rf /etc/yum.repos.d/*

删除所有yum仓库(如果你原来有重要yum仓库记得备份) 

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

安装阿里云yum仓库镜像

yum clean all && yum makecache

清除以前缓存 &&更 新缓存

yum -y install epel-release
yum -y install ansible

Linux:ansible自动化运维工具,运维,linux,ansible


主服务器生成密钥ssh免密登录客户机

在主服务器上

ssh-keygen -t rsa

 输入完命令一直回车即可

Linux:ansible自动化运维工具,运维,linux,ansible

ssh-copy-id 用户@ip地址

传输密钥,传输完以后可以进行免密ssh连接

ssh-copy-id root@192.168.0.193

 输入完命令以后,yes,输入密码就可以了

如果有另外的客户端,也执行同样操作,全测试可以免密ssh登录即可

Linux:ansible自动化运维工具,运维,linux,ansible

ssh-copy-id root@192.168.0.192

Linux:ansible自动化运维工具,运维,linux,ansible

 只要ssh登录时候不用密码就是成功了


主机列表   /etc/ansible/hosts

 主机列表可以写一个组,组名下面写ip或者主机名,就是这个组的成员,控制这个组,或控制单个都是可以的

vim /etc/ansible/hosts

进去以后可以单起一行,前面没有的#才行

格式为

[组名]

主机ip或主机名

……

Linux:ansible自动化运维工具,运维,linux,ansible

 web就是组名

下面的就是ip,当我们对web进行操作,两个主机就会回馈

此外还可以这样写……
 

[web]   ## 主机组
192.168.10.2
192.168.10.3

[test01]
www.bdqn.cn:222   ##通过端口222管理设备

[mail]
ly01.mail.cn

[ly]
ly[2:5].test.com  ##正则表达式:表示4台主机ly2,ly3,ly4,ly5..


基础操作 

ansible web -m command -a "firewall-cmd --state"

 查看web组的主机有没有开防火墙

Linux:ansible自动化运维工具,运维,linux,ansible

        

ansible web -m command -a "systemctl stop firewalld" --limit "192.168.0.193"

对web组的192.168.0.193执行关闭防火墙操作

Linux:ansible自动化运维工具,运维,linux,ansible

可以指定ip去执行

ansible 192.168.0.192  -m command -a "ip a"

Linux:ansible自动化运维工具,运维,linux,ansible

通过通配符来指定多个主机远程操作(可以理解为一个网段)

ansible 192.168.0.* -m command -a "firewall-cmd --state"

Linux:ansible自动化运维工具,运维,linux,ansible


Ansible注意事项->提示颜色信息说明

黄色:对远程节点进行相应修改
绿色:对远程节点不进行相应修改,或者只是对远程节点信息进行查看
红色:操作执行命令有异常
紫色:表示对命令执行发出警告信息(可能存在的问题,给你一下建议)
 


ansible命令

检查清单中所有主机是否存活
-f  并发线程数为5
-m   调用ping模块(并不是ping命令) 

ansible all -f 5 -m ping

## success---表示成功; => {} 表示返回结果
## changed false 表示没有对主机进行更改
##pong ---ping模块返回结果

Linux:ansible自动化运维工具,运维,linux,ansible

all就是全部的意思,也可以指定某个组或者ip

列出web组主机列表 

ansible web --list

 Linux:ansible自动化运维工具,运维,linux,ansible

批量显示web组磁盘使用情况     

ansible web -m command -a "df -hT"

Linux:ansible自动化运维工具,运维,linux,ansible

ansible-doc  可用来查询模块文档的说明,类似于man

列出所有模块信息

ansible-doc -l

查询ping模块的说明信息

ansible-doc ping

ansible-console 交互式工具。类似于cmd或shell

ansible-console 

进去之后可以使用cd + 组名进去进行直接操作

Linux:ansible自动化运维工具,运维,linux,ansible

 Linux:ansible自动化运维工具,运维,linux,ansible

list可以列出当前组的成员


ansible常用模块 

Shell功能全面但是执行率低
command不支持:逻辑运算符、条件判断符号、重定向命令或者是管道命令


command模块---远程执行命令     
chdir---在远程主机运行命令前,要提前进入的目录
creates---创建文件(如文件已存在,则不执行)
removes--移除文件(如文件不存在,则不执行)
executable--更改shell环境(并且执行命令时要使用绝对路径)

 在web组主机上运行命令,运行前切换到/root目录

ansible web -m command -a "chdir=/root  ls ./"

 web就是组名

shell模块---相当于调用远程主机的shell进程,在该shell下打开一个子shell运行命令
 

ansible web -m shell -a 'echo "hello ly" >> /tmp/hello.txt'

 web就是组名

ssh ip地址 cat /tmp/hello.txt


copy模块---在远程主机执行复制操作文件。 

– src:要复制到远程主机的文件在本地的地址,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。在这种情况下,如果路径使用”/”来结尾,则只复制目录里的内容,如果没有使用”/”来结尾,则包含目录在内的整个内容全部复制,类似于rsync。 
– content:用于替代”src”,可以直接设定指定文件的值 
– dest:必选项。要将源文件复制到的远程主机的绝对路径,如果源文件是一个目录,那么该路径也必须是个目录 
– directory_mode:递归的设定目录的权限,默认为系统默认权限 
– force:如果目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖,如果为no,则只有当目标主机的目标位置不存在该文件时,才复制。默认为yes 
– others:所有的file模块里的选项都可以在这里使用

mode--文件权限

owner--属主

group--属组

ansible web -m copy -a "src=/etc/hosts dest=/tmp/ mode=777 owner=nobody group=root" 


更改远程主机名为ly

ansible ip地址或组名 -m hostname -a "name=ly" 

yum模块---调用远程主机的yum程序进行管理

Ansible yum模块主要用于软件的安装、升级、卸载,支持rpm软件包的管理 
yum模块使用详解:

conf_file:设置远程yum执行时所依赖的yum配置文件
disable_gpg_check:安装软件包之前是否检查gpg key
name:需要安装的软件名称,支持软件组安装
update_cache:安装软件之前更新缓存
enablerepo:指定repo源名称
skip_broken:跳过异常软件节点
state:软件包状态,包括installed、present、latest、absent、removed present, installed是指安裝套件,而latest指安裝最新的套件,也就是使用 yum mirror 上最新的版本。
absent, removed 没有什么区别

调用yum模块安装httpd服务

 ansible ip地址 -m yum -a "name=httpd state=present"

service模块---管理远程主机服务

name---服务名
state=started/stopped/restarted  动作为启动、停止、重启
enabled=no/yes  是否设置为开机启动
runlevel :如果定义了开机启动,则设置运行级别

Linux:ansible自动化运维工具,运维,linux,ansible 

确保要开启的服务软件已经安装了

 

ansible 192.168.10.3 -m service -a "name=httpd state=started enabled=yes"

Linux:ansible自动化运维工具,运维,linux,ansible

执行完就这样

Linux:ansible自动化运维工具,运维,linux,ansible 

 running就开启成功了


user模块---管理远程主机用户账户

Ansible user模块主要用于操作系统用户、组、权限、密码等操作 
user模块使用详解:

system:默认创建为普通用户,为yes则创建系统用户
append:添加一个新的组
comment:添加描述信息
createhome:给用户创建家目录
force:强制删除用户
group:创建用户主组
groups:将用户加入组或者附属组添加
home:指定用户的家目录
move_home=yes/no 如果设置的家目录已存在,是否将已存在的家目录进行移动
name:表示状态,是否create、remove、modify
password:指定用户的密码,为加密密码
remove:删除用户
shell:设置用户的shell登录环境
uid:设置用户ID
update_password:修改用户密码
state:用户状态,默认为present,表示新建用户

 

ansible web -m user -a 'name=user1 system=yes uid=501 group=root groups=sshd shell=/sbin/nologin home=/user1 password=123 comment="test user"

在web组的所有主机上创建一个user1用户,是系统用户,uid是501 组是root  附属组是sshd ,shell环境是/sbin/nologin  ,家目录是/user1,密码是123,介绍是test user

 

ansible web -m user -a 'name=user1 password=123'

如果你就简单的设置一下那么他和useradd user1差不多, 

ansible web -m user -a "name=user1 remove=yes state=absent"

删除刚刚添加的用户文章来源地址https://www.toymoban.com/news/detail-669854.html

到了这里,关于Linux:ansible自动化运维工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自动化运维工具——Ansible

    Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主机。比如以前需要切换到每个主机上执行的一或多个

    2024年02月14日
    浏览(39)
  • 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 模块

    2024年02月15日
    浏览(34)
  • 自动化运维工具之Ansible

    Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主机。比如以前需要切换到每个主机上执行的一或多个

    2024年02月08日
    浏览(59)
  • 自动化运维工具——Ansible学习(二)

    目录 一、handlers和notify结合使用触发条件 1.新建httpd.yml文件 2.复制配置文件到ansible的files目录中 3.卸载被控机已安装的httpd 4.执行httpd.yml脚本 5.更改httpd.conf配置文件 6.使用handlers 7.重新执行httpd.yml脚本 8.检查被控机的端口号是否改变 9.handlers也可以触发多个 二、tags 1.通过指定

    2024年02月16日
    浏览(37)
  • Ansible自动化运维工具---Playbook

    playbook是剧本的意思,通过 task 调用 ansible 的模块将多个 play 组织在一 个playbook中运行。 playbook各部分组成 : Tasks : 任务,即调用模块完成的某操作 Variables : 变量 emplates : 模板 Handlers : 处理器,当某条件满足时,触发执行的操作 Roles : 角色 playbook yaml语法 是换行空两格,-和

    2024年02月03日
    浏览(32)
  • Ansible自动化运维工具的认识

    目录 一、Ansible概述 二、Ansible特点 三、Ansible应用 1、使用者 2、Ansible工具集合 3、作用对象 四、Ansible的搭建 1、实验环境 2、环境准备 Ansible: 3、创建ssh免密交互登录 client端环境准备 五、Ansible配置 六、Ansible命令 1、ansible 实验案例: 1.检查所有主机是否存活 2.列出Rich组中

    2024年02月16日
    浏览(34)
  • Ansible 自动化运维工具(完善版)

    目录  Ansible概述 Ansible特点 Ansible应用 1、使用者 2、Ansible工具集合 3、作用对象 Ansible的搭建 环境 ansible主机 1、ansible 2、Ansible-doc Ansible模块 1.command模块 2.shell模块 3.raw模块 Ansible是最近非常火的一款开源运维自动化工具,通过Ansible可以实现运维自动化,提高运维工程师的工

    2024年02月16日
    浏览(34)
  • 自动化运维工具-------Ansible(超详细)

    Ansible是自动化运维工具,基于Python开发,分布式,无需客户端,轻量级,实现了批量系统配置、批量程序部署、批量运行命令等功能, ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架 。 1)、no agents:不需要在

    2024年02月10日
    浏览(30)
  • Ansible 自动化运维工具的使用

    目录   一、Ansible简介 二、Ansible 的安装和使用 1.下载 2.使用 三、Ansible命令和模块 1.命令格式 2.命令行模块 (1)command 模块 (2)shell 模块 (3)cron 模块 (4)user 模块 (5)group 模块 (6)copy 模块 (7)file 模块 (8)hostname 模块 (9)ping 模块  (10)yum 模块 (11)service/

    2024年02月11日
    浏览(46)
  • 【Ansible】Ansible自动化运维工具之playbook剧本

      简单来说,playbooks是一种简单的配置管理系统与多机器部署系统的基础。与现有的其他系统有不同之处,且非常适合复杂应用的部署。   Playbooks 可用于声明配置,更强大的地方在于,playbooks可以编排有序的去执行过程,甚至做到多组机器间来回有序的执行特别指定的

    2024年02月14日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包