首先下载ansible
yum install ansible -y
然后配置/etc/ansible/hosts文件
[root@m01 /server/scripts]# cat /etc/ansible/hosts
[oldboy]
172.16.1.66
[data]
172.16.1.67
172.16.1.68
172.16.1.69
在把 /etc/ansible/ansible.cfg 71的注释删除
[root@m01 /server/scripts]# vim /etc/ansible/ansible.cfg +71
host_key_checking = False
先写个脚本rsync服务端的需求:
[root@m01 /server/scripts]# cat rsync.sh
#!/bin/sh
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
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = welcome to oldboyedu backup!
path = /backup/
EOF
useradd rsync
mkdir /backup
chown -R rsync.rsync /backup/
echo "rsync_backup:oldboy" > /etc/rsync.password
chmod 600 /etc/rsync.password
echo "export RSYNC_PASSWORD=rsync_backup:oldboy" >>/etc/bashrc
source /etc/bashrc
编写剧本rsync服务端剧本
[root@m01 /server/scripts]# cat /etc/ansible/yaml/r1.yml
- hosts: oldboy
tasks:
- name: rsync客户端操作
script: /server/scripts/rsync.sh
再写个脚本rsync客户端的需求:
[root@m01 /server/scripts]# cat rsync1.sh
echo "oldboy" > /etc/rsync.password
chmod 600 /etc/rsync.password
echo ' export RSYNC_PASSWORD=oldboy' >>/etc/bashrc
source /etc/bashrc
编写剧本rsync客户端剧本
[root@m01 /server/scripts]# cat /etc/ansible/yaml/r2.yml
- hosts: data
tasks:
- name: rsync客户端
script: /server/scripts/rsync1.sh
在写脚本nfs服务端需求
[root@m01 /server/scripts]# cat nfs.sh
#!/bin/sh
yum install nfs-utils rpcbind -y
systemctl start rpcbind &&\
systemctl enable rpcbind &&\
systemctl start nfs &&\
systemctl enable nfs
cat >/etc/exports <<EOF
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=3344,anongid=3344)
EOF
systemctl reload nfs
useradd -u 3344 lvsha
mkdir -p /data
chown lvsha.lvsha /data
编写剧本nfs服务端剧本
[root@m01 /server/scripts]# cat /etc/ansible/yaml/n1.yml
- hosts: 172.16.1.67
tasks:
- name: nfs服务端
script: /server/scripts/nfs.sh
在写脚本nfs客户端需求
[root@m01 /server/scripts]# cat nfs1.sh
#!/bin/sh
yum install nfs-utils rpcbind -y
systemctl start rpcbind &&\
systemctl enable rpcbind &&\
systemctl start nfs &&\
systemctl enable nfs
useradd -u 3344 lvsha
mount -t nfs 172.16.1.67:/data /mnt
echo "mount -t nfs 172.16.1.67:/data /mnt" >>/etc/rc.local
chmod +x /etc/rc.local
编写剧本nfs客户端剧本
[root@m01 /server/scripts]# cat /etc/ansible/yaml/n2.yml
- hosts: 172.16.1.68
tasks:
- name: nfs客户端
script: /server/scripts/nfs1.sh
- hosts: 172.16.1.69
tasks:
- name: nfs客户端
script: /server/scripts/nfs1.sh
sersync配置首先要在m01下把sersync这个文件下载好
首先得下载配置文件
[root@m01 /server/scripts]# cd /server/tools/
[root@m01 /server/tools]# ls
application sersync_oldboy_64bit_20160928.tar.gz
[root@m01 /server/tools]#
[root@m01 /server/tools]# cd application/
[root@m01 /server/tools/application]# mkdir -p /application
[root@m01 /server/tools/application]# mv sersync/ /application/
在写脚本sersync客户端需求
[root@m01 /server/scripts]# cat s1.sh
#!/bin/sh
ansible data -m copy -a "src=/application/ dest=/application/" &&\
ansible data -m file -a "path=/application/ recurse=on mode=+x" &&\
ansible data -m shell -a "/application/sersync/bin/sersync -d -o /application/sersync/conf/confxml.xml &>/dev/null"
编写剧本sersync客户端剧本
[root@m01 /server/scripts]# cat /etc/ansible/yaml/s1.yml
- hosts: data
tasks:
- name: 客户端sersync
copy: src=/application/ dest=/application/
- file: path=/application/ recurse=on mode=+x
- shell: /application/sersync/bin/sersync -d -o /application/sersync/conf/confxml.xml &>/dev/null
首先优化m01的ssh把这些内容写进去
[root@m01 /server/scripts]# cat /etc/ssh/sshd_config
####Start by oldboy#2018-04-26###
PermitEmptyPasswords no
UseDNS no
GSSAPIAuthentication no
#ListenAddress 172.16.1.61:22 #将来配置VPN安全服务之后再加此行。
####End by oldboy#2018-04-26###
最后执行大脚本
[root@m01 /server/scripts]# cat 666.sh
#!/bin/sh
#删除公钥
[ ~/.ssh/id_rsa ]&& rm -fr ~/.ssh
#创建密钥对
ssh-keygen -f ~/.ssh/id_rsa -P '' -q &&\
#分发公钥和优化ssh
for n in 172.16.1.{66..69}
do
sshpass -p123456 ssh-copy-id -f -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no $n
ansible $n -m copy -a "src=/etc/ssh/sshd_config dest=/etc/ssh/sshd_config backup=yes"
done &&\
#rsync服务端
ansible-playbook /etc/ansible/yaml/r1.yml
#rsync客户端
ansible-playbook /etc/ansible/yaml/r2.yml
#nfs服务端
ansible-playbook /etc/ansible/yaml/n1.yml
#nfs客户端
ansible-playbook /etc/ansible/yaml/n2.yml
#sersync客户端
ansible-playbook /etc/ansible/yaml/s1.yml
网友评论