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