ansible远程控制
环境:一台centos7,一台centos6.5
实验步骤:
centos7的服务器上:
一 .准备工作
1.关闭selinux ,清空默认防火墙策略,桥接物理网络。
setenforce 0
ifconfig
systemctl restart sshd
iptables -F
2.安装远程登陆的依赖关系包。
yum -y install openssl openssl-devel
3.安装ansible。(确保有离线的ansible软件包)
mkdir /yum
mv /etc/yum.repos.d/* /yum/
vim /etc/yum.repos.d/yum.repo
[yum]
name=yum
baseurl=file:///root/ansibleRPM
enabled=1
gpgcheck=0
cd ansibleRPM/
rm -rf repodata/
createrepo /root/ansibleRPM/
cd
yum -y install ansible
4.删除冲突环境python2包
rpm -qa | grep python
rpm -e python2-cryptography –nodeps
5.查看ansible版本,确认安装成功
ansible --version
6.修改ansible服务器的配置文件,链接被控服务器
vim /etc/ansible/hosts
在最后一行添加:
[webserver] ——对方服务器名称
192.168.6.112 ——对方IP地址
7.设置密钥ssh远程登陆,因为ansible是通过22端口对其他服务器进行控制的,所有必须要进行密钥认证,要不然当执行的时候还的进行密码验证,而密钥链接是不需要验证密码的。
ssh-keygen
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.6.112
ssh 192.168.6.112
8.测试是否可以链接被控服务器。
ansible -m ping 'webserver'
一.正式开始
注意:与上边的题的编号想对应
1.设置客户机每天晚上11点重启httpd服务
ansible webserver -m cron -a 'hour=23 job="/sbin/service httpd restart"'
2.设置客户机每天凌晨3点清空/tmp目录
ansible webserver -m cron -a 'hour=3 job="/bin/rm -rf /tmp/*"'
3.设置客户机创建用户nginx,并且禁止登录系统
ansible webserver -m user -a 'name=nginx shell=/sbin/nologin"'
4. 设置客户机创建账户zhangsan,密码为123.com,加入wheel组
ansible webserver -m user -a 'name=zhangsan password="$1$7DZX5yEx$7P1Qu9JYTHoxKEVwWBaoF0" groups=wheel'
5. 删除客户机上的mysql用户
ansible webserver -m user -a 'name="mysql" state=absent'
6. 为客户机创建邮件组postfix,gid为1500
ansible webserver -m group -a 'name=postfix gid=1500'
7. 将zhangsan加入邮件组
ansible webserver -m user -a 'name=zhangsan group=postfix'
8. 将客户机/etc/yum.repos.d/下的所有移动到客户机的/root目录下 shell模块实现
ansible webserver -m shell -a 'mv /etc/yum.repos.d/* /root/'
9. 将ansible主机上的docker.repo(自行创建)复制到客户机的/etc/yum.repos.d目录下
ansible webserver -m copy -a 'src=/etc/yum.repos.d/yum.repo dest=/etc/yum.repos.d/ mode=0750 owner=root group=root'
10. 修改客户机/root/install.log的权限为777
ansible webserver -m file -a 'path=/root/install.log mode=777'
11. 设置客户机/etc/httpd/conf/httpd.conf软连接到/root/目录下
ansible webserver -m file -a 'path=/root/xx.txt src=/etc/httpd/conf/httpd.conf state=link'
12. 设置客户机的httpd服务随系统启动,且开启
ansible webserver -m service -a 'enabled=true name=httpd state=started'
13. 编写一个打包/var/logs目录的shell脚本,然后为客户机执行它。
vim haha.sh
添加;
#!/bin/bash
tar zcf /root/rizhi.tar.gz /var/log
ansible webserver -m script -a '/root/haha.sh'
14. 重定向客户机磁盘空间占用量到ansible机器的/root/disk.log文件内
ansible webserver -a 'df -hT' > /root/disk.log
cat disk.log
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探