posts - 52,comments - 0,views - 22059
复制代码
剧本编写规范: pyyaml -- 三点要求
1. 合理的信息缩进 两个空格表示一个缩进关系
标题一
  标题二
    标题三
PS: 在ansible中一定不能用tab进行缩进
剧本的组成
- hosts: xxx
tasks:
- name: xxxx:xxx
yum: xxx
- name:
2. 冒号的使用方法 - hosts: 172.16.1.100 tasks: yum: name=xx PS: 使用冒号时后面要有空格信息 以冒号结尾,冒号信息出现在注释说明中,后面不需要加上空格 3. 短横线应用 -(列表功能) - 张三 男 打游戏 运动 - 李四 女 学习 湖南 - 王五 男 运动 深圳 PS: 使用短横线构成列表信息,短横线后面需要有空格 开始编写剧本 mkdir /etc/ansible/ansible-playbook vim rsync_server.ymal 说明: 剧本文件扩展名尽量写为yaml或者yml 1. 方便识别文件是一个剧本文件 2. 文件编写时会有颜色提示 - hosts: 172.16.1.110 tasks: yum: name=rsync state=installed copy: src=/tmp/rsyncd.conf dest=/etc/ src=本地 dest=远端 如何执行剧本: 第一个步骤: 检查剧本的语法格式 ansible-playbook --syntax-check rsync_server.yaml 第二个步骤: 模拟执行剧本 ansible-playbook -C rsync_server.yaml 第三个步骤: 直接执行剧本 ansible-playbook rsync_server.yaml
复制代码

05 剧本的编写方法
  剧本的作用: 可以一键化完成多个任务
  自动化部署nfs服务:
  服务端的操作

复制代码
    第一个历程安装软件:rpcbind(一般是安装自启的,所以不需要安装)
    ansible 10.0.0.100 -m yum -a "name=nfs-utils state=installed" 
    
    第二个历程编写配置文件:
    ansible 10.0.0.100 -m copy -a "content='/data01 10.0.0.110(rw,sync)' dest=/etc/exports”
    
    第三个历程创建nfs目录并指定属主属组
    ansible 10.0.0.100 -m user -a "path=/data state=directory owner=nfsnobody group=nfsnobody"
    
    第四个历程启动服务
    ansible 10.0.0.100 -m service -a "name=nfs state=started enabled=yes"
复制代码

剧本yml编写nfs:

复制代码
#nfs server

- hosts: 10.0.0.110
  tasks:
    - name: 01-install nfs package
      yum:
        name: ['nfs-utils', 'rpcbind']
        state: installed

    - name: 02-write conf file
      copy: content='/data01 10.0.0.110(rw,sync)' dest=/etc/exports

    - name: 03-create  dir
      file: path=/data01 state=directory owner=nfsnobody group=nfsnobody

    - name: 04-restart nfs server an enable
      service: name={{ item }} state=restarted enabled=yes
      with_items:
        - rpcbind
        - nfs
复制代码

06 如何配置主机清单
第一种方式: 分组配置主机信息
[web]
172.16.1.7
172.16.1.8
172.16.1.9

[data]
172.16.1.31
172.16.1.41
操作过程
[root@m01 ansible-playbook]# ansible data -a "hostname"
172.16.1.31 | CHANGED | rc=0 >>
nfs01

172.16.1.41 | CHANGED | rc=0 >>
backup


第二种方式: 主机名符号匹配配置
[web]
172.16.1.[7:9]
[web]
web[01:03]

第三种方式: 跟上非标准远程端口
[web]
web01:52113
172.16.1.7:52113

第四种方式: 主机使用特殊的变量
[web] 未分发秘钥时连接
172.16.1.7 ansible_ssh_port=52113 ansible_ssh_user=root ansible_ssh_pass=123456
[web] 未进行解析时
web01 ansible_ssh_host=172.16.1.7 ansible_ssh_port=52113 ansible_ssh_user=root ansible_ssh_pass=123456

第五种方式: 主机组名嵌入配置
[rsync:children] --- 嵌入子组信息
rsync_server
rsync_client

[rsync_server]
172.16.1.41

[rsync_client]
172.16.1.31
172.16.1.7

[web:vars] --- 嵌入式变量信息
ansible_ssh_host=172.16.1.7
ansible_ssh_port=52113
ansible_ssh_user=root
ansible_ssh_pass=123456
[web]
web01

主机清单的配置方法:
https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html

 

posted on   宇小白  阅读(333)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示