1、

    #vim /etc/ansible/yaml/back.yml
- hosts: siyi
tasks:
- name: "yum rsync"
yum: name=rsync state=installed
- name: "配置rsync模块"
copy: backup=yes src=/etc/rsyncd.conf dest=/etc/rsyncd.conf
- name: "创建rsync用户"
user: name=rsync
- name: "创建backup目录"
file: name=/backup state=directory owner=rsync group=rsync
- name: "创建/server/tools/目录"
file: name=/server/tools/ state=directory owner=root group=root
- name: "开启rsync服务"
service: name=rsyncd state=started enabled=yes
- name: "创建密码文件"
file: name=/etc/rsync.password state=touch mode=600
- name: "添加密码"
blockinfile: path=/etc/rsync.password block='rsync_backup:oldboy'
- hosts: sanyi
tasks:
- name: "yum rsync"
yum: name=rsync state=installed
- name: "创建data目录"
file: name=/data state=directory
- name: "创建密码文件"
file: name=/etc/rsync.password state=touch mode=600
- name: "添加密码"
blockinfile: path=/etc/rsync.password block='oldboy'
- name: "添加bashrc"
blockinfile: path=/etc/bashrc block='export RSYNC_PASSWORD=oldboy'
- name: "执行bashrc"
shell: source /etc/bashrc
- name: "推送测试"
command: rsync -az /tmp rsync_backup@172.16.1.41::backup/
- name: "解压监控包"
command: tar -xf /server/tools/application.tar.gz -C /server/tools/
- name: "创建日志目录"
file: name=/application/logs/ state=directory
- name: "创建日志文件"
file: name=/application/logs/rsync_fail_log.sh state=touch
- name: "执行监控"
command: /server/tools/application/bin/sersync2 -d -o /server/tools/application/conf/confxml.xml
- name: "yum nfs"
yum: name=nfs-utils state=installed
- name: "yum rpcbind"
yum: name=rpcbind state=installed
- name: "开启rpcbind服务"
service: name=rpcbind state=started enabled=yes
- name: "开启nfs服务"
service: name=nfs state=started enabled=yes
- name: "添加共享目录"
blockinfile: path=/etc/exports block='/data 172.16.1.0/24(rw,sync)'
- name: "重启nfs服务"
service: name=nfs state=restarted
- name: "修改data属主"
file: name=/data owner=nfsnobody group=nfsnobody
- hosts: oldboy
tasks:
- name: "yum nfs-utils rpcbind"
yum: name=nfs-utils state=installed
- name: "yum nfs-utils rpcbind"
yum: name=rpcbind state=installed
- name: "开启rpcbind服务"
service: name=rpcbind state=started enabled=yes
- name: "挂载"
mount: src='172.16.1.31:/data' state=mounted fstype=nfs name=/mnt
- name: "添加执行权限"
file: name=/etc/rc.local mode=755
- name: "添加密码"
blockinfile: path=/etc/rc.local block='/usr/bin/mount -t nfs 172.16.1.31:/data /mnt'

4、m01的/server/scripts/目录下

        # vim /server/scripts/mokuai.sh
#!/bin/bash
cd /root/.ssh/ &&\
rm -f * &&\
/bin/ssh-keygen -t rsa -f /root/.ssh/id_rsa -P "" &>/dev/null
yum install -y sshpass >/dev/null 2>&1
for n in 7 8 31 41
do
sshpass -p123456 ssh-copy-id -i ~/.ssh/id_rsa.pub 172.16.1.$n -o StrictHostKeyChecking=no &>/dev/null
if [ $? -eq 0 ]
then
echo "172.16.1.$n Distribute successfully "
else
echo "172.16.1.$n Distribute no successfully "
fi
done &&\
scp -P 22 -rp /server/tools/application.tar.gz root@172.16.1.31:/server/tools/ &>/dev/null &&\
cp /etc/ansible/hosts{,.ori} &&\
cat >/etc/ansible/hosts<<EOF
[siyi]
172.16.1.41 [sanyi]
172.16.1.31 [oldboy]
172.16.1.7
172.16.1.8
EOF
cp /etc/rsyncd.conf{,.ori} &&\
cat >/etc/rsyncd.conf<<EOF
#rsync_config_______________start
#created by oldboy
#site: http://www.oldboyedu.com
uid = rsync
gid = rsync
use chroot = no
fake super = yes
max connections = 200
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = welcome to oldboyedu backup!
path = /backup/
EOF
sed -i '71s/#//' /etc/ansible/ansible.cfg &&\
ansible-playbook /etc/ansible/yaml/back.yml

ansible 模块的更多相关文章

  1. ansible模块

    ansible模块: 模块(Modules),类似于 "任务插件"("task plugins")或"库插件"("library ...

  2. ansible笔记(3):ansible模块的基本使用

    ansible笔记():ansible模块的基本使用 在前文的基础上,我们已经知道,当我们使用ansible完成实际任务时,需要依靠ansible的各个模块,比如,我们想要去ping某主机,则需要使用 ...

  3. 第4天:Ansible模块

    Ansible对远程服务器的实际操作实际是通过模块完成的,其工作原理如下: 1)将模块拷贝到远程服务器 2)执行模块定义的操做,完成对服务器的修改 3)在远程服务器中删除模块 需要说明的是,Ansib ...

  4. ansible模块command、shell、raw、script

    简介 环境: ansible端: ip:192.168.100.129 hostname:node1.lansgg.com client端: ip:192.168.100.131 hostname:v ...

  5. win10的pycharm中安装ansible模块过程

    前面的安装报错信息 ansible模块安装报错:Could not install packages due to an OSError: [Errno 2] No such file or dire ...

  6. Ansible 模块命令介绍

    copy模块: 目的:把主控端/root目录下的a.sh文件拷贝到到指定节点上 命令:ansible 10.1.1.113 -m copy -a 'src=/root/a.sh dest=/tmp/' ...

  7. ansible 模块 分享

    A a10_server 管理A10 Networks AX / SoftAX / Thunder / vThunder设备 a10_service_group 管理A10网络设备的服务组 a10_v ...

  8. ansible模块学习

    ansible的功能: 模块化任务,调用特定的模块,完成特定的任务 基于python语言实现,由paramiko.pyyaml和jinja2三个模块构建 部署简单,agentless,ansible基 ...

  9. 4.1、Ansible模块

    ansible-doc -l    列出所有模块 ansible-doc 模块名    查看模块的help说明 ansible-doc -s  module_name:获取指定模块的使用信息 ***文 ...

随机推荐

  1. 如何机智判断页面是刷新还是关闭,背景:vue项目,需求:关闭页面,下次直接跳到登陆页

    最近项目有这么个需求:要在关闭当前系统的窗口的时候,退出登录, 因为如果不退出登录可能存在安全风险,其实我想说,电脑没事别借给别人活着离开工位记得一定要锁屏,其实我们设置了cookie失效时间的,过了 ...

  2. ASP.NET Core WebApi中使用FluentValidation验证数据模型

    原文链接:Common features in ASP.NET Core 2.1 WebApi: Validation 作者:Anthony Giretti 译者:Lamond Lu 介绍 验证用户输 ...

  3. 解读 kubernetes client-go 官方 examples - Part Ⅰ

    目录 1. 介绍 2. 运行测试 2.1 测试环境 2.2 运行结果 3. 原理解析 3.1 获取 kubeconfig 信息,并构造 rest#Config 实例 3.1.1 tools/clien ...

  4. python基础2--数据结构(列表List、元组Tuple、字典Dict)

    1.Print函数中文编码问题 print中的编码:# -*- coding: utf-8 -*- 注:此处的#代表的是配置信息 print中的换行符,与C语言相同,为"\n" 2 ...

  5. 关于jQuery中的选择器

    1:选择器的作用 获取网页的上面的标签元素等等,然后对他进行一些列的操作(添加样式,添加行为...) 2:选择器有哪些 基本选择器,层次选择器,过滤选择器,表单选择器 一:基本选择器 基本选择器是jq ...

  6. oracle学习笔记(一) oracle 体系结构简单介绍以及创建表空间和用户

    体系结构 oracle数据服务器由oracle数据库和实例组成 实例由后台进程和内存结构组成 内存结构由共享池,数据缓冲区,日志缓存区 Oracle数据库是通过表空间来存储物理表的,一个数据库实例可以 ...

  7. [转载]css菜鸟之HTML 中块级元素设置 height:100% 的实现

    HTML 中块级元素设置 height:100% 的实现 当你设置一个页面元素的高度(height)为100%时,期望这样元素能撑满整个浏览器窗口的高度,但大多数情况下,这样的做法没有任何效果. 为什 ...

  8. npm ERR! asyncWrite is not a function

    1.背景:原先node是官网下载安装的,通过brew更新了下,然后到项目里npm i 安装包时候,报错2.解决:卸载官网下载安装的node,重装 sudo rm -rf /usr/local/{bin ...

  9. 原生jQuery代码

    function myJquery(selector){ if(typeof selector=="string") { if (selector.charAt(0) == &qu ...

  10. Python数据处理与计算——概述

    Python是一种面向对象的,动态的程序设计语言,具有非常简洁而清晰的语法,适合于完成各种高层任务.它既可以用来快速开发程序脚本,也可以用来开发大规模的软件. 随着NumPy.SciPy.Matplo ...