Ansible-中部

2019-11-21 分类:DevOps 阅读(214) 评论(0)

管理前操作

1.机器还原快照(firewalld、selinux、配置好仓库)
选择虚拟机-》快照-》恢复
2.推送你的公钥
[root@m01 ~]# sshpass -p1 ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.41
3.配置Ansible的主机清单
[root@m01 ~]# cat /etc/ansible/hosts
[web]
172.16.1.7
172.16.1.8

[nfs]
172.16.1.31

[backup]
172.16.1.41

4.检查主机是否都ok
[root@m01 ~]# ansible all -m ping

epel、firewalld、selinux、ww

基础环境操作

基础环境:
    1.所有的主机都需要安装rsync和nfs-utils
    2.所有的主机都需要准备对应的rsync客户端的密码文件/etc/rsync.pass
    3.所有的主机都需要创建一个uid和gid为666的www用户
    4.所有的主机都需要全网备份的脚本,并配置好定时任务

1.安装rsync和nfs-utils
[root@m01 ~]# ansible all -m yum -a "name=rsync,nfs-utils state=installed"
2.准备rsync的客户端密码文件
[root@m01 ~]# ansible all -m copy -a "content='1' dest=/etc/rsync.pass owner=root group=root mode=600"
3.准备对应的www用户,uid和gid都为666
[root@m01 ~]# ansible all -m group -a "name=www gid=666"
[root@m01 ~]# ansible all -m user -a "name=www uid=666 group=666 create_home=no shell=/sbin/nologin"
4.从管理上拷贝对应的脚本文件,然后将其加入定时任务
[root@m01 ~]# ansible all -m copy -a "src=./scripts/rsync_backup_md5.sh dest=/server/scripts/ mode=755"
[root@m01 ~]# ansible all -m cron -a "name='Rsync Bakcup Scripts' hour=01 minute=00 job='/bin/bash /server/scripts/rsync_backup_md5.sh &>/dev/null'"

[root@m01 ~]# pwd
/root
[root@m01 ~]# mkdir scripts
[root@m01 ~]# cat scripts/rsync_backup_md5.sh
#!/usr/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

#1.定义变量
Host=$(hostname)
Addr=$(ifconfig eth1|awk 'NR==2{print $2}')
Date=$(date +%F)
Dest=${Host}_${Addr}_${Date}
Path=/backup
#2.创建备份目录
[ -d $Path/$Dest ] || mkdir -p $Path/$Dest

#3.备份对应的文件
cd / && \
[ -f $Path/$Dest/system.tar.gz ] || tar czf $Path/$Dest/system.tar.gz etc/fstab etc/rsyncd.conf && \
[ -f $Path/$Dest/log.tar.gz ] || tar czf $Path/$Dest/log.tar.gz  var/log/messages var/log/secure && \

#4.携带md5验证信息
[ -f $Path/$Dest/${Date}.flag ] || md5sum $Path/$Dest/*.tar.gz >$Path/$Dest/${Date}.flag

#4.推送本地数据至备份服务器
export RSYNC_PASSWORD=1
rsync -avz $Path/ rsync_backup@172.16.1.41::backup

#5.本地保留最近7天的数据
find $Path/ -type d -mtime +7|xargs rm -rf

应用环境:(配置rsync服务->Backup服务器)

    1.安装rsync
    2.配置rsync,/etc/rsyncd.conf
    3.创建目录,创建虚拟用户文件,变更权限
    4.启动服务,加入开机自启动
    5.配置邮箱,准备对应的脚本

1.安装rsync
[root@m01 ~]# ansible backup -m yum -a "name=rsync state=installed"
2.配置rsync,/etc/rsyncd.conf
[root@m01 ~]# ansible backup -m copy -a "src=./conf/rsyncd.conf dest=/etc/rsyncd.conf"

[root@m01 ~]# pwd
/root
[root@m01 ~]# mkdir conf
[root@m01 ~]# cat conf/rsyncd.conf
uid = www
gid = www
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.password
log file = /var/log/rsyncd.log
#####################################
[backup]
path = /backup

[data]
path = /data
3.创建目录,变更权限,创建虚拟用户文件
[root@m01 ~]# ansible backup -m file -a "path=/backup state=directory mode=755 owner=www group=www"
[root@m01 ~]# ansible backup -m file -a "path=/data state=directory mode=755 owner=www group=www"
[root@m01 ~]# ansible backup -m copy -a "content='rsync_backup:1' dest=/etc/rsync.password mode=600 owner=root group=root"
4.启动服务,加入开机自启动
[root@m01 ~]# ansible backup -m service -a "name=rsyncd state=started enabled=yes"
5.配置邮箱,准备对应的脚本

应用环境:(配置nfs服务)

    1.安装nfs-utils
    2.配置nfs-utils
    3.创建对应的共享目录,并修改权限
    4.启动nfs

1.安装nfs-utils
[root@m01 ~]# ansible nfs -m yum -a "name=nfs-utils state=installed"

2.配置nfs-utils
[root@m01 ~]# ansible nfs -m copy -a "content='/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)' dest=/etc/exports"
3.创建对应的共享目录,并递归修改权限
[root@m01 ~]# ansible nfs -m file -a "path=/data state=directory recurse=yes owner=www group=www mode=755"
4.启动nfs
[root@m01 ~]# ansible nfs -m service -a "name=nfs-server state=started enabled=yes"

应用环境:(配置web服务,挂载操作)

挂载

[root@m01 ~]# ansible web -m mount -a "src=172.16.1.31:/data path=/data fstype=nfs opts=defaults state=mounted"
标签:

您可能也喜欢:

Ansible-下部

ansible-playbook playbook是由一个或多个模块组成的,使用多个不同的模块,完成一件事情。 ansible软件特点 可以实现批量管理 可以实现批量部署 ad-hoc(批量执行命令)---针对临时性的操作     ansible clsn ...

more

Ansible-上部

Ansible概述 Ansible是一个配置管理系统configuration management system python 语言是运维人员必须会的语言 ansible 是一个基于python 开发的自动化运维工具 其功能实现基于ssh远程连接...

more

ERROR: Unrecognized command line argument: ‘use’

Unrecognized command line argument: 'use' gvm--GoLang语言多版本管理工具 基础环境 centos6.5 报错内容 gvm在命令行以外的任何地方调用 gvm use 都会报错 gvm use go1.13.4 ERROR: Unrecog...

more

欢迎新朋友你的到来!
还没有人抢沙发呢~
昵称
邮箱
网站

切换注册

登录

忘记密码 ?

切换登录

注册