ansible安装和一键化部署Rsync服务

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。在讲ansible之前,我们先来说一说基于ssh的密匙建立远程连接。

一般情况下,我们在一台主机上使用ssh命令连接另一台主机都需要输入密码。但是今天给大家带来一种用密匙的方式,免去每次远程连接都需要使用密码的繁琐。

首先我们要创建一对密匙(类似于一把锁和一把钥匙)

ssh-keygen -t dsa

-t 表示密匙类型。有两种,一种是dsa,另一种是rsa。随便选哪种都可以。
在使用该命令创建密匙时会要确认密匙存放路径和密匙是否要加密。在这里插入图片描述
此时我们可以加上两个参数来避免这种情况。-f 参数可以指定存放位置,-N参数可以指定密码内容。(双引号内没有空格!)

ssh-keygen -t dsa -f /root/.ssh/id_dsa -N ""

这样我们就可以完成,免交互创建密匙了。接下来是分发密匙。当我们用一下命令分发密匙的时候。会让我们确认我们是否要连接172.16.1.8主机。确认之后还要输入密码。

ssh-copy-id -i /root/.ssh/id_dsa.pub 172.16.1.8

在这里插入图片描述
此时我们又可以增加两个参数避免交互
sshpass -p123456 和 -o StrictHostKeyChecking=no (sshpass需要用yum安装一下。)
使用一下命令即可完成面交互分发密匙。

sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no 172.16.1.7"

下面是批量分发(利用sh脚本和for循环。)

 #!/bin/bash
        rm /root/.ssh/id_dsa
        ssh-keygen -t dsa -f /root/.ssh/id_dsa -N ""
        
        for ip in 31 41 7
        do
        sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no 172.16.1.$ip"
        done

完成以上内容后,我们可以正式开始使用ansible了。

想要使用ansible一键化部署,首先要对ansible进行安装。安装ansible主要分为两种:
控制主机的安装:

yum install -y ansible

受控主机的安装(可选):

  yum install -y libselinux-python

安装完成以后我们需要在控制主机上对ansible软件进行配置。在文件中添加受控主机的相关信息(ip地址)。

  vim /etc/ansible/hosts
  [oldboy]
  172.16.1.7
  172.16.1.31
  172.16.1.41

注意:[oldboy]是将下面三个ip地址包含在oldboy组内。在进行批量化管理的时候直接使用oldboy即可同时对以上三个主机同时管理。
此时ansible已经部署完成。可以使用了。
注意:如果不进行上面的ssh免密交互,则需要在ansible配置文件中加入每台主机的用户名和密码。

172.16.1.31 ansible_user=root ansible_password=123456

接下来我们按照ansible脚本的书写格式进行编写一键化部署Rsync服务。
首先确认好我们要进行哪些操作(最好用一个文本记录下来没不要干什么,方便编写脚本时进行对照)。
rsync服务端部署
a 检查rsync软件是否已经安装
b 编写rsync软件主配置文件
c 创建备份目录管理用户
d 创建备份目录,并进行授权
e 创建认证文件,编写认证用户和密码信息,设置文件权限为600
f 启动rsync守护进程服务
接下来就是脚本的编写:
注意确认好每个步骤所需要用到ansible的哪个模块。可以从官网查询[http://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html]
同级别的项目注意对齐,否则会报错。

  #command play-book
    
- hosts: 172.16.1.41

  tasks:

    - name: step01:install rsync
      yum: name=rsync state=installed
    - name: step02:edit rsync conf file
      copy: src=/etc/ansible/conf/rsync_conf/rsyncd.conf dest=/etc/
    - name: step03:create rsync user
      user: name=rsync state=present createhome=no shell=/sbin/nologin
    - name: step04:create rsync auth file
      copy: src=/etc/ansible/conf/rsync_conf/rsync.password dest=/etc/ mode=600
    - name: step05:create rsync dir
      file: dest=/backup/ state=directory owner=rsync group=rsync
    - name: step06:boot rsync server
      shell: creates=/var/run/rsyncd.pid rsync --daemon

- hosts: 172.16.1.31

  tasks:
    - name: step01:create auth file
      copy: src=/etc/ansible/conf/rsync_conf/rsync_client.password dest=/etc/rsync.password mode=600

执行脚本的方法:

ansible-playbook /etc/ansible/ansible-playbook/test.yaml

可以在命令里加入-C参数,进行模拟执行。进行脚本验证。

ansible-playbook -C /etc/ansible/ansible-playbook/test.yaml
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值