剧本一键化部署

一、熟悉软件部署流程
二、熟悉ansible软件模块使用
三、熟悉ansible剧本编写规范
(ansible 临时实现批量管理功能
playbook 永久实现批量管理功能)
四、剧本编写常见错误:
1、剧本语法规范是否符合(空格 冒号 短横线)
2、剧本中模块使用是否正确
3、剧本中一个name标识下面只能写一个模块任务信息
4、 剧本中尽量不要大量使用shell模块

一、剧本编写

****服务端****
[root@m01 kitty]# mkdir /ansible-playbook
[root@m01 kitty]# cd /ansible-playbook
[root@m01 ansible-playbook]# vim rsync_server.yaml 
- hosts: rsync_server
  tasks:
    - name: 01-install rsync  
      yum: name=rsync state=installed
    - name: 02-push conf file    
      copy: src=/etc/ansible/server_file/rsync_server/rsyncd.conf dest=/etc/   ##拉取rsync配置文件
    - name: 03-create user
      user: name=rsync create_home=no shell=/sbin/nologin
      #shell: useradd rsync -M -s /sbin/nologin  ##shell不要多用,容易报错。
    - name: 04-create backup dir
      file: path=/backup state=directory owner=rsync group=rsync
    - name: 05-create password file
      copy: content=rsync_backup:oldboy123 dest=/etc/rsync.password mode=600
    - name: 06-start rsync server
      service: name=rsyncd state=started enabled=yes
**客户端**
- hosts: rsync_clients
  tasks:
    - name: 01-install rsync
      yum: name=rsync state=installed
    - name: 02-create password file
      copy: content=kitty123 dest=/etc/rsync.password mode=600
    - name: 03-create test file
      file: dest=/tmp/test.txt  state=touch
    - name: 04-check test
      shell: rsync -avz /tmp/test.txt rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password  ##一个剧本使用一次shell

二、主机清单配置

ansible配置文件内在 etc/ansible/hosts中
==================================================
 第一种方式: 分组配置主机信息
	[web]
    172.168.3.7
    172.168.3.8
    172.168.3.9
    
    [data]
    172.168.3.31
    172.168.3.41
 前面加上名称
  [root@m01 ansible-playbook]# ansible data -a "hostname"
    172.168.3.31 | CHANGED | rc=0 >>
    nfs01
    
    172.168.3.41 | CHANGED | rc=0 >>
    backup
====================================================
第二种方式: 主机名符号匹配配置
	[web]
    172.16.3.[7:9]  ##7~9(地址)
	[web]
    web[01:03]  ##在/etc/hosts中之前配置过匹配的信息,若是删除了相对应的匹配信息则这条命令不管不用 
    如172.168.3.7为web01 ##web01~web03
====================================================
第三种方式: 跟上非标准远程端口
	[web] 
    web01:52113
    ##端口号变了,比如修改了 /etc/ssh/sshd_config 端口号为52113
    172.168.3.7:52113
=====================================================
第四种方式: 主机使用特殊的变量
    [web]
    172.168.3.7 ansible_ssh_port=52113 ansible_ssh_user=root ansible_ssh_pass=123456
    [web]
    web01 ansible_ssh_host=172.168.3.7 ansible_ssh_port=52113 ansible_ssh_user=root ansible_ssh_pass=123456  ##这种方式需要 hosts文件配置合适。
=====================================================
    第五种方式: 主机组名嵌入配置
	[rsync:children]    --- 嵌入子组信息
    rsync_server  ##服务端
    rsync_client  ##客户端
    
    [rsync_server]
    172.168.3.41
    
    [rsync_client]
    172.168.1.31
    172.168.3.7
	
	[web:vars]         --- 嵌入式变量信息
    ansible_ssh_host=172.168.3.7
    ansible_ssh_port=52113
    ansible_ssh_user=root
    ansible_ssh_pass=123456
    [web]
    web01

三、剧本的扩展功能配置
1、在剧本编写中设置变量信息
2、在剧本编写中设置注册信息
3、在剧本编写中设置判断信息
4、在剧本编写中设置循环信息
5、在剧本编写中设置错误忽略
6、在剧本编写中设置标签信息
7、在剧本编写中设置触发信息
8、在剧本编写中设置剧本整合

四、在剧本文件中设置变量信息

1、直接在剧本文件中编写(次优先)
vars:
  kitty01=data01
  kitty02=data02
===================================================
2、在命令中进行指定(最优先)
ansible-playbook --extra-vars=oldboy01=data01
===================================================
3、在主机清单中进行编写(最后 )
[kitty]
kitty01=data01
kitty02=data02

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值