ansible剧本02--(linux运维11)

1.如任何配置主机清单

配置文件:/etc/ansible/hosts

 vim /etc/ansible/hosts

1.1 分组配置主机信息(使用的时候就可以直接使用web data )

[web]
172.16.1.7
172.16.1.8

[data]
172.16.1.41

1.2 主机名符号匹配配置

[web]
172.16.1.[7:9]

1.3 跟上非标准远程端口

[web]
web01:52113
172.16.1.7:52213

1.4 主机使用特殊的变量

[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

1.5 主机组名嵌入配置

嵌入子组信息

[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

2. 剧本中的重要功能介绍

2.1 变量

方式一:直接在剧本中进行编写

- hosts: 
  vars:
    oldboy01:123
    oldboy02:456
  tasks:
    -name: 

方式二:在命令行中进行指定

ansible-playbook --extra-vars=oldboy01=data01

方式三:在主机清单文件编写

[oldboy]
oldboy01=123
oldboy02=456

三种方式的优先级:命令行>剧本中>主机清单

2.2 设置注册信息

- hosts: oldboy
  tasks:
  - name: check server port
    shell: netstat -lntup  --- 端口信息
    register: get_server_port<--端口信
  - name: display port info
    debug: msg={{ get_server_port.stdout_lines }}

2.3设置判断信息

通过steup查看所有的信息

ansible 172.16.1.31 -m setup 

filter过滤

ansible 172.16.1.31 -m setup -a "filter=ansible_hostname"

常见的主机信息:

ansible_all_ipv4_addresses:				仅显示ipv4的信息。
ansible_devices:							仅显示磁盘设备信息。
ansible_distribution:						显示是什么系统,例:centos,suse等。
ansible_distribution_major_version:		显示是系统主版本。
ansible_distribution_version:				仅显示系统版本。
ansible_machine:							显示系统类型,例:32位,还是64位。
ansible_eth0:								仅显示eth0的信息。
ansible_hostname:							仅显示主机名。
ansible_kernel:							仅显示内核版本。
ansible_lvm:								显示lvm相关信息。
ansible_memtotal_mb:						显示系统总内存。
ansible_memfree_mb:						显示可用系统内存。
ansible_memory_mb:							详细显示内存情况。
ansible_swaptotal_mb:						显示总的swap内存。
ansible_swapfree_mb:						显示swap内存的可用内存。
ansible_mounts:							显示系统磁盘挂载情况。
ansible_processor:							显示cpu个数(具体显示每个cpu的型号)。
ansible_processor_vcpus:					显示cpu个数(只显示总的个数)。

获取子信息方法:
ansible_eth0[ipv4]

判断的具体应用格式:

- name: install httpd
  yum: name=httpd state=installed
  when: (系统情况 == "CentOS")

注意:

使用when
()括号
双等号 ==

2.4 剧本中的循环

with_items:

- name: Add Users
  user: name={{ item.name }} groups={{ item.groups }} state=present
  with_items: 
    - { name: 'testuser1', groups: 'bin' }
    - { name: 'testuser2', groups: 'root' }

yum的设置格式

- name: 
  yum:
    name: ['rpcbind','nfs-utils']
    state: installed

2.5 剧本中设置忽略错误

遇到错误就跳过

ignore_errors: yes

2.6 剧本中设置标签(tags)

- name: install httpd2
  yum: name=httpd2 state=installed
  tags: t3 

指定执行那个标签

 ansible-playbook --tags=t3 test.yaml

跳过标签

 ansible-playbook --skip-tags=t2 test.yaml

2.7 触发功能

- name: copy-file
  copy: src= {{Data_dir}} path=/etc 
  notify: restart rsync service
handler:
  - name: restart rsync service
    service: name=rsyncd state=restarted

nitofy的内容和name的内容要一致
handler要和tasks一致,service不要-

3. 多个剧本整合

方式一:

 - hosts: all
   remote_user: root
   tasks:
     - include_tasks: f1.yaml
     - include_tasks: f2.yaml

方式二:

- include: f1.yml
- include: f2.yml

方式三 :

- import_playbook: f1.yml
- import_playbook: f2.yml
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长安有故里y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值