ansible------自动化运维工具

一、简介

ansible是一种自动化运维工具,基于paramiko开发的,并且基于模块化工作,Ansible是一种集成IT系统的配置管理、应用部署、执行特定任务的开源平台,它是基于python语言,由Paramiko和YAML两个关键模块构建。集合了众多运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的。

二、部署ansible

实验环境:

主:192.168.27.3					ansible
服:192.168.27.4
服:192.168.27.5	

1、关闭防火墙及安全机制

systemctl stop firewalld
setenforce 0

2、安装epel-release源

yum -y install epel-release
yum -y install ansible
yum -y install tree			#树形工具

3、使用tree工具查看ansible目录下的文件

tree /etc/ansible
/etc/ansible
├── ansible.cfg					#配置文件
├── hosts						#这个文件很重要,因为这个文件是管理主机的配置
└── roles

4、添加被管理的主机

vim /etc/ansible/hosts
#文末添加
[组名]
ip地址
...
...
[组名]
ip地址
...
...
#在后期进行管理的时候,可以不用写ip地址,用组名也是可以进行管理,一个组里可以添加多个ip地址

5、生成密钥对

ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 		#回车
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 					#输入123123
Enter same passphrase again: 									#输入123123
Your identification has been saved in /root/.ssh/id_rsa.		#私钥的位置
Your public key has been saved in /root/.ssh/id_rsa.pub.		#公钥的位置
The key fingerprint is:
SHA256:dSbvtdv02QcLn0DOhKcUAKX28ES6H1RLkuYkXo5Pjtg root@hzh
The key's randomart image is:
+---[RSA 2048]----+
|         o+ oo   |
|        .+ ..    |
|        o...     |
|   .   . =. .    |
|  . o o S o.  o  |
|.  = + = * = . + |
|..E o + X + + o  |
|.+   . + *.o . . |
|+o.     +. o+ .  |
+----[SHA256]-----+

6、将公钥推送给被管理的服务器

ssh-copy-id root@192.168.241.20				# 注意这里需要输入对方的登录密码,而不是密钥对的密码
ssh-copy-id root@192.168.241.4

7、使用ansible每次都需要进行输入密码,这里可以使用免交互代理

ssh-copy-id root@192.168.241.20				# 注意这里需要输入对方的登录密码,而不是密钥对的密码
ssh-copy-id root@192.168.241.4

三、ansible模块

1、command

ansible 192.168.27.4 -m command -a 'date'			# 指定IP地址执行查看IP地址
ansible test -m command -a 'date'					# 地址分组执行查看IP地址
ansible all -m command -a 'date'					# all代表所有分组,执行查看IP地址
ansible all -a 'date'								# -m command可以不写,默认运行command命令

在这里插入图片描述

2、cron模块

cron模块有两种状态(state):分别是present表示添加(可以省略),absent表示移除

ansible test01 -m cron -a 'minute="*/1" job="/bin/echo hehe" name="test01 hehe"'    	# 创建计划任务
ansible test01 -a 'crontab -l'															# 查看计划任务
ansible test01 -m cron -a ‘name="test01 hehe" state=absent’								# 移除计划任务

在这里插入图片描述
在这里插入图片描述

3、user模块

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

ansible test01 -m user -a 'name=lisi'								# 创建用户lisi
ansible test01 -a 'tail /etc/passwd'	
ansible test01 -m user -a 'name="lisi" state=absent'				# 删除用户

在这里插入图片描述

4、group模块

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

ansible test01 -m group -a 'name=mysql gid=306 system=yes'
ansible test01 -a 'tail /etc/group'						# tail查看末尾10行
ansible test01 -m user -a 'name=lisi uid=306 system=yes group=mysql'
ansible test01 -a 'id lisi'

5、copy模块

ansible test01 -m copy -a 'src=/opt/test.txt dest=/opt/test.txt owner=root mode=640'
ansible test01 -a 'ls -l /opt'
ansible test01 -a 'cat /opt/test.txt'

ansible test01 -m copy -a 'content="hello" dest=/opt/test.txt'			# 将hello写入/opt/test.txt目录下
ansible test01 -a 'cat /opt/test.txt'

在这里插入图片描述
在这里插入图片描述

6、file模块

ansible test01 -m user -a 'name=lisi system=yes'
ansible test01 -m group -a 'name lisi system=yes'
ansible test01 -m file -a 'owner=lisi group=lisi mode=644 path=/opt/test.txt'

ansible test01 -m file -a 'src=/opt/test.txt path=/opt/test.txt.link state=link'			# 创建软链接
ansible test01 -m file -a 'path=/opt/123 state=touch'										# 创建123文件
ansible test01 -m file -a 'path=/opt/123.txt state=absent'									# 删除123文件
ansible test01 -m file -a 'path=/opt/test state=directory mode=700'							# 创建目录

在这里插入图片描述

7、ping模块

ansible all -m ping

8、yum模块

ansible test01 -m yum -a 'name=httpd'								# 安装httpd服务
ansible test01 -m yum -a 'name=httpd state=absent'					# 卸载httpd服务

在这里插入图片描述
在这里插入图片描述

9、service模块

ansible test01 -a 'systemctl start httpd'
或者
ansible test01 -m service -a 'enabled=true name=httpd state=started'

在这里插入图片描述
在这里插入图片描述

10、shell模块

ansible test01 -m shell -a 'echo 123123 | passwd --stdin lisi'		# 这里需要注意的是用户必须要存在

11、script模块

vim test.sh
#!/bin/bash
echo "hello ansible from script" > /opt/script.txt

chmod +x test.sh
ansible test01 -m script -a 'test.sh'

在这里插入图片描述
在这里插入图片描述

12、setup模块

ansible test01 -m setup			#获取test01组主机的信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值