Ansible的安装与基础命令的使用

Ansible

Ansible 是一个开源的自动化工具,用于配置管理、应用部署和任务自动化。它由 Michael DeHaan 于 2012 年创建,后来被 Red Hat 收购。Ansible 的设计理念是简单易用,不需要在受管节点上安装任何代理软件,它通过 SSH(Secure Shell)来执行任务。

Ansible 的安装

注控制端为192.168.20.60,被控端为192.168.20.10和192.168.20.20

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

在这里插入图片描述
安装完成,修改配置文件

vim /etc/ansible/hosts

在最底下添加
[web1]
192.168.20.10
[web2]
192.168.20.20
在这里插入图片描述
在控制端生成SSH密钥

yum install -y sshpass
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
sshpass -p '123' ssh-copy-id -o StrictHostKeyChecking=no root@192.168.20.10
sshpass -p '123' ssh-copy-id -o StrictHostKeyChecking=no root@192.168.20.20

在这里插入图片描述
使用

#使用命令查看控制端和服务端是否联通
ansible web1 -m ping 
ansible web2 -m ping 

在这里插入图片描述

Ansible 基础模块的使用

1.command模块
在远程主机执行命令,不支持管道,重定向等shell的特性。

ansible web1 -m command -a 'ls /'

在这里插入图片描述

ansible web1 -m command -a 'cat /etc/passwd'

在这里插入图片描述
2.shell模块
在远程主机执行命令,相当于调用远程主机的shell进程,然后在该shell下打开一个子shell运行命令持管道符号等功能
例如

ansible web1 -m shell -a 'echo test web1 >  /opt/test.txt'
ansible web1 -m shell -a 'cat /opt/test.txt '

在这里插入图片描述

ansible web1 -m shell -a  'echo $(ifconfig ens33|awk "NR==2 {print $2}")'

在这里插入图片描述
3.cron模块

ansible web2 -m cron -a 'minute=""      job=""             name=" " '
						# 设置时间     # job指定命令路径     #任务名字
ansible web1 -m cron -a 'minute="*/1" job="/bin/echo test1" name="test1" 

每分钟echo一条test1
在这里插入图片描述

在这里插入图片描述

ansible web1 -m cron -a 'name="test1" state=absent'

在这里插入图片描述
在这里插入图片描述
定时任务已经被删除了

4.user模块
常用的参数:
name:用户名,必选参数
state=present|absent:创建账号或者删除账号,present表示创建,absent表示删除
system=yes|no:是否为系统账号
uid:用户uid
group:用户基本组
groups: 用户所属附加组
shell:默认使用的shell
create_home=yse|no: 是否创建家目录
password:用户的密码,建议使用加密后的字符串
remove=yes|no:当state=absent时,是否删除用户的家目录

创建有个名字为test1的用户

ansible web1 -m user -a 'name="test1"'

在这里插入图片描述
可以看到test1 用户的UID号是1001家目录是/home/test1

在这里插入图片描述

 cat /etc/passwd | awk -F: '{print $1}'

在这里插入图片描述

删除用户test1不删除家目录

ansible web1 -m user 'name="test1" state="absent"'

在这里插入图片描述
在这里插入图片描述
test1用户已经被删除了但是用火狐的家目录并没有被删除
在这里插入图片描述
创建test2用户

ansible web1 -m  user  -a 'name="test2"'

在这里插入图片描述
在这里插入图片描述
删除test2并且删除test2的家目录

ansible web1 -m user -a 'name="test2"  state="absent"  remove="yes" '

在这里插入图片描述

在这里插入图片描述
删除成功
5.group模块
创建名字为mysql的组

ansible web1 -m group -a 'name=mysql '

在这里插入图片描述
向创建的组中添加用户

ansible web1 -m user -a 'name=test3 uid=1002 system=yes group=mysql'

在这里插入图片描述
6.copy模块
用于复制指定主机文件到远程主机的
常用的参数:
dest:指出复制文件的目标及位置,使用绝对路径,如果源是目录,指目标也要是目录,如果目标文件已经存在会覆盖原有的内容
src:指出源文件的路径,可以使用相对路径或绝对路径,支持直接指定目录,如果源是目录则目标也要是目录
mode:指出复制时,目标文件的权限
owner:指出复制时,目标文件的属主
group:指出复制时,目标文件的属组
content:指出复制到目标主机上的内容,不能与src一起使用
在这里插入图片描述
我要将PE工具箱这个文件远程传输给web1组

ansble web1 -m copy -a 'src=/opt/PE工具箱V2.3.zip dest=opt mode=644'

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

7.file模块
设置文件属性
创建文件

ansible web1 -m file 	'path=/opt/test2   state=touch'

在这里插入图片描述
在这里插入图片描述
删除文件

ansible web1 -m file  -a 'path=opt/PE工具箱V2.3.zip state=absent'

在这里插入图片描述
在这里插入图片描述
删除成功

8.hostname 模块
可以更改主机名字

将主机名字改成hostweb1

ansible web1 -m hostname  -a 'name=hostweb1'

在这里插入图片描述

在这里插入图片描述
9.ping 模块
检测远程主机的连通性

ansible web1 -m ping 

在这里插入图片描述

ansible all -m ping 

在这里插入图片描述
10.yum模块
安装软件

ansible web1 -m yum -a 'name=php'

在这里插入图片描述

在这里插入图片描述
安装成功

11service/systemd模块
启动服务

 ansible web1 -m service -a ' name=httpd  state=started'

在这里插入图片描述
查看服务器状态

ansible web1 -a 'systemctl status httpd'	

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值