Day39 课堂作业
B:script模块功能说明:
功能说明:在远程节点上运行本地脚本
官方链接远端可以没有脚本,本地有就行:
[root@m01 /server/scripts]# cat setup.sh
pwd
ls /root
for n in {1..100}
do
echo $n >>/tmp/oldboy.log
done
执行:
ansible oldboy -m script -a "/server/scripts/setup.sh"
C:copy模块功能说明:
功能说明:复制文件到远程主机
官方链接
ansible oldboy -m copy -a "src=/server dest=/ mode=ugo+x group=root owner=root"
ansible oldboy -m copy -a "src=/server/scripts/setup dest=/server/scripts mode=ugo+x group=root owner=root backup=yes"
D:shell模块功能说明:
功能说明:执行一个命令在远程节点上
官方链接
ansible oldboy -m shell -a "free -m|grep buffer"
远程执行脚本:脚本必须在远端存在
ansible oldboy -m shell -a "/bin/bash /server/scripts/setup.sh"
项目实践作业:
- 1、写好
rsync
一键客户端配置,一键服务端配置。- 2、写好
nfs
一键服务端端配置,一键客户端挂载,并且加到自启动文件里(/etc/rc.local,/etc/fstab
)。
步骤:
1、远端命令行非交互实现
echo 123456|passwd --stdin oldboy
2、所有步骤放在脚本里实现。
3、管理机上远程执行。
ssh /bin/sh /server/scripts/ins.sh
E file模块功能说明:
功能说明:设置文件属性
官方链接
替代方案:
ansible oldboy -m command -a "chmod 777 /etc/hosts warn=false"
ansible oldboy -m command -a "chmod 644 /etc/hosts warn=false"
ansible oldboy -m command -a "chown oldboy /etc/hosts warn=false"
ansible oldboy -m command -a "chown root /etc/hosts warn=false"
创建目录:
mkdir /tmp/oldboy_dir
ansible oldboy -m file -a "dest=/tmp/oldboy_dir state=directory"
递归设置权限:
ansible oldboy -m file -a "dest=/tmp/oldboy_dir state=directory mode=644 recurse=yes"
创建文件:
touch /tmp/oldboy_file
ansible oldboy -m file -a "dest=/tmp/oldboy_file state=touch"
删除文件:
rm -f /tmp/oldboy_file
ansible oldboy -m file -a "dest=/tmp/oldboy_file state=absent"
创建链接文件:
ln -s /etc/hosts /tmp/link_file
ansible oldboy -m file -a "src=/etc/hosts dest=/tmp/link_file state=link"
`
ansible oldboy -m file -a "dest=/tmp/oldboy_file state=touch owner=oldboy group=oldboy mode=000"
ansible oldboy -m file -a "dest=/tmp/oldboy_file state=touch owner=oldboy group=oldboy mode=ugo=rwx"
F:yum模块功能说明:
功能说明:yum包管理模块
官方链接
ansible oldboy -m yum -a "name=nginx state=installed"
[root@nfs01 oldboy_dir]# rpm -qa nginx
nginx-1.10.2-1.el6.x86_64
注意:不要用yum卸载,用rpm -e卸载。
G:service模块功能说明:
功能说明:启动停止服务
官方链接
相当于
service crond stop|/etc/init.d/crond stop
chkconfig crond off
ansible oldboy -m service -a "name=crond state=stop enabled=no"
相当于
etc/init.d/crond start
chkconfig crond on
ansible oldboy -m service -a "name=crond state=started enabled=yes"
ansible oldboy -m command -a "name=crond state=started enabled=yes"
H: cron模块功能说明:
功能说明:管理定时任务条目信息模块
官方链接定时任务格式:
* * * * * CMD
--------------------------------------------------------------
==>创建定时任务<==
--------------------------------------------------------------
ansible oldboy -m cron -a "name='sync time' minute=00 hour=00 job='/usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1'"
--------------------------------------------------------------
==>结果<==
--------------------------------------------------------------
#Ansible: sync time
00 00 * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1
添加如下定时任务:
05 03 * * * /bin/sh /server/scripts/backup.sh /server/scripts/list >/dev/null 2>&1
命令如下:
ansible oldboy -m cron -a "name='backup data' minute=05 hour=03 job='/bin/sh /server/scripts/backup.sh /server/scripts/list >/dev/null 2>&1'"
结果:
#Ansible: backup data
05 03 * * * /bin/sh /server/scripts/backup.sh /server/scripts/list >/dev/null 2>&1
删除定时任务:
ansible oldboy -m cron -a "name='backup data' state=absent"
注释相应定时任务,使定时任务失效
nsible oldboy -m cron-a "name='ansible cron01' minute=0 hour=0 job='/bin/sh /server/scripts/test.sh' disabled=yes"
网友评论