当前位置: 首页 > news >正文

有没有做网站的电话宁德市蕉城区疫情

有没有做网站的电话,宁德市蕉城区疫情,阿里 建设网站,淘宝网站如何在邮件里做超链接12.2handles handles触发器(条件),满足条件后再做什么事情应用场景:想表示:配置文件变化,再重启服务 配置handlers之前,每次运行剧本都会重启nfs,无论配置文件是否变化。 [rootm01 /server/ans/playbook]…

12.2handles

  • handles触发器(条件),满足条件后再做什么事情
  • 应用场景:想表示:配置文件变化,再重启服务
    配置handlers之前,每次运行剧本都会重启nfs,无论配置文件是否变化。
[root@m01 /server/ans/playbook]# cat 17-handler-nfs-server.yml 
---
- hosts: dbtasks:- name : 01.分发配置copy:src: ./exportsdest: /etc/exportsbackup: yes- name : 05 启动服务nfssystemd:name: nfsenabled: yesstate: restarted
不管exports配置有无修改,都会执行05启动nfs服务
配置了handerles,只有服务配置文件变化了再重启服务。
[root@m01 /server/ans/playbook]# cat 17-handler-nfs-server.yml 
---
- hosts: dbtasks:- name : 01.分发配置copy:src: ./exportsdest: /etc/exportsbackup: yesnotify:- restart nfs   #与下面handlers的name一样handlers:- name: restart nfssystemd:name: nfsenabled: yesstate: restarted

12.3 when(判断)

when是ansible中的判断语句(条件语句)
实现对于某个模块在满足或不满足xxxxx条件下再执行
给web服务器或lb服务器,配置nginx的yum源

when: ( ansible_distribution == 'Ubuntu') #如果系统的发行版本是Ubuntu则运行模块ansible_distribution的ansible-facts变量when: ( ansible_hostname is match("web|lb") ) #主机名包含web或lb,配置nginx源when: ( ansible_hostname is not match("web|lb") ) cat nginx.repo 
[nginx]
baseurl = http://nginx.org/packages/centos/$releasever/$basearch/
enabled = 1
gpgcheck = 0
name = nginx stable repocat 18-when-fenfa-nginx-yum.yml 
---
- hosts: alltasks:- name: 配置lb或者web的nginx yum源copy:src: ./nginx.repodest: /etc/yum.repos.d/nginx.repobackup: yeswhen: ( ansible_hostname is match("web|lb") )

12.4 循环

批量启动,重启服务
案例01-批量重启服务:crond,nfs,rpcbind

cat 19-item-restart-service.yml 
---
- hosts: nfsgather_facts: notasks:- name: restart 多个服务systemd:name: "{{ item }}"state: restartedwith_items:- crond- rpcbind- nfs

案例02-循环添加用户并指定uid

  • ansible中2个或多个变量的循环语句格式.
用户名uid
hbinz12307
zhangsan12380
cat 20-item-duo-var-useradd.yml 
---
- hosts: alltasks:- name: 批量添加用户user:name: "{{ item.name }}"uid: "{{ item.uid }}"state: presentwith_items:- { name: "hbinz" , uid: "12307" }- { name: "zhangsan" , uid: "12308" }

循环小结:

with_items:实现循环,变量名字item,多个变量循环了解即可
注:这里的with_items可以替换成loops

12.5 Jinja2模板

经常使用在配置文件中,让配置文件中包含变量
copy模块没有解析变量
template模块传输的时候解析配置文件变量(ansible),配置文件格式改为exports.j2
cat 21-jinja-fenfa-conf.yml
---
- hosts: nfstasks:- name: 分发nfs配置文件,加主机名template:src: ./exports.j2dest: /etc/exports
ansible-playbook -i hosts 21-jinja-fenfa-conf.ymlnfs01的exports:
[root@nfs01 ~]# cat /etc/exports
# nfs01 nfs配置文件
/data 172.16.1.0/24(rw,all_squash)
  • 使用jinja2模板要求
    • 配置文件必须要以.2结尾(ansible)
    • 分发文件的时候,使用template模块,用法与copy一致

在这里插入图片描述

案例02-jinja2循环

批量共享目录/data /backup /nfsdata
cat exports.j2
# {{ ansible_hostname}} nfs配置文件
{% for name in ["/data","/backup","/nfsdata"] %}
{{name}} 172.16.1.0/24(rw,all_squash)
{% endfor %}--------------------------------------------------
[root@nfs01 ~]# cat /etc/exports
# nfs01 nfs配置文件
/data 172.16.1.0/24(rw,all_squash)
/backup 172.16.1.0/24(rw,all_squash)
/nfsdata 172.16.1.0/24(rw,all_squash)

核心掌握:

  • 配置文件xxxx.j2+template模块
  • jinja2配置文件支持ans变量.

12.6 Roles

  • roles:规范剧本相关的目录.本质规定的几个专用的目录
    按照初级方式写剧本
  1. 剧本nfs服务端
---
- hosts: nfstasks:- name: 01.部署nfs服务端软件yum:name: nfs-utilsstate: installed- name: 02.修改配置文件template:src: ./exports.j2dest: /etc/exportsbackup: yesnotify: - 04.启动服务-rpcbind-nfs服务- name: 03.创建对应的目录和,权限file:path: /data/owner: nfsnobodygroup: nfsnobodystate: directoryhandlers:- name: 04.启动服务-rpcbind-nfs服务systemd:name: "{{ item }}"enabled: yesstate: restartedwith_items:- rpcbind- nfs

a)roles结构
在这里插入图片描述

b)环境准备及部署流程

  • 1.先书写或拆分剧本中tasks的内容
  • 2.根据剧本,分类存放配置文件,模板文件(j2)
  • 3.根据剧本,配置handlers的main.yaml文件
  • 4.书写剧本入口.与nfs-server目录同级
mkdir -p roles
cd roles
mkdir -p nfs-server/{files,templates,tasks,handlers}
[root@m01 /server/ans/playbook/roles]# tree -F
.
└── nfs-server/├── files/├── handlers/├── tasks/└── templates/

c)先书写拆分或拆分剧本中tasks的内容.

[root@m01 /server/ans/playbook/roles]# cat nfs-server/tasks/main.yml 
- name: 01.部署nfs服务端软件yum:name: nfs-utilsstate: installed- name: 02.修改配置文件template:src: ./exports.j2dest: /etc/exportsbackup: yesnotify: - 04.启动服务-rpcbind-nfs服务- name: 03.创建对应的目录和,权限file:path: /data/owner: nfsnobodygroup: nfsnobodystate: directory

d)根据剧本,分类存放配置文件,模板文件(j2)

[root@m01 /server/ans/playbook/roles]# cat nfs-server/templates/exports.j2 
# {{ ansible_hostname}} nfs配置文件
/data/ 172.16.1.0/24(rw,all_squash)
[root@m01 /server/ans/playbook/roles]# tree -F
.
└── nfs-server/├── files/├── handlers/├── tasks/│   └── main.yml└── templates/└── exports.j25 directories, 2 files

e)根据剧本,配置handlers的main.yml文件

[root@m01 /server/ans/playbook/roles]# cat nfs-server/handlers/main.yml 
- name: 04.启动服务-rpcbind-nfs服务systemd:name: "{{ item }}"enabled: yesstate: restartedwith_items:- rpcbind- nfs
[root@m01 /server/ans/playbook/roles]# tree -F
.
└── nfs-server/├── files/├── handlers/│   └── main.yml├── tasks/│   └── main.yml└── templates/└── exports.j2

f)书写入口剧本,与nfs-server目录同级

[root@m01 /server/ans/playbook/roles]# cat top.yml 
---
- hosts: nfsroles:- role: nfs-server  #与目录名字一致,ans才能找到下个入口
[root@m01 /server/ans/playbook/roles]# tree -F
.
├── nfs-server/
│   ├── files/
│   ├── handlers/
│   │   └── main.yml
│   ├── tasks/
│   │   └── main.yml
│   └── templates/
│       └── exports.j2
└── top.yml

g)roles执行流程

  • 1.ansible-playbook -i host top.yml
  • 2.读取top.yml内容获取roles信息
  • 3.根据顺序先执行第1个role—>nfs-server
  • 4.执行nfs-server,找nfs-server对应的目录
  • 5.执行里面的tasks下面的main.yml
  • 6.执行mian.yml的时候,遇到copy/template模块则找对应的目录copy(files),template(templates),找对应的文件
  • 7.执行main.yml的时候,遇到notify,则会找handlers下面的main.yml的内容,进行匹配和执行。

12.7 Galaxy-了解

官方roles集合

ansible-galaxy install geerlingguy.nginx

12.8 ansible-vault-了解

加密文件

ansible-vault encrypt hosts   #加密配置文件,设置密码
ansible --ask-vault-pass -i hosts all -m ping #使用ansible命令或ansible-playbook命令需要加上 --ask-vault-pass

13.Ansible-进阶-优化

/etc/ansible/ansible.cfginventory = /etc/ansible/hosts  #指定的默认的主机清单. 未来可以修改为 ./hosts 就可以不用加上-i
forks = 50 #并发数量. 可以增加这个数量获取更快批量管理效率.
sudo_user = root  #配置下被管理端具有sudo权限的用户,并且修改/etc/sudoers 注释掉requiretty
host_key_checking = False  #默认是True 连接新的主机要进行验证. 建议关闭,加速.
log_path = /var/log/ansible.log   #默认没有开启.
ssh_args = -C -o ControlMaster=auto -o 
ControlPersist=6d  #连接的保持时间. 6d 10d
pipelining = True #加速,加速连接合并不必要的连接. 要求:不能使用sudo,如果使用则不能开启.

14.总结Ansblie

主机清单
模块
剧本
http://www.ds6.com.cn/news/93036.html

相关文章:

  • app和微网站的区别是什么软件制作
  • 哪个购物平台最好哈尔滨seo网络推广
  • 百度网站建设是什么速推网
  • 阿里云怎么做淘客网站中国十大流量网站
  • 银行网站源码企业整站seo
  • 杭州 商城网站开发无锡百度推广公司哪家好
  • 低价做网站百度关键词排名技术
  • 盘锦做网站公司百度云app
  • 义乌专业做网站的公司郑州seo优化顾问
  • 做一个电商网站步骤新网站怎么做推广
  • 什么网站可以接模具做荥阳seo推广
  • 怎么上传网站图片的链接百度竞价怎么收费
  • sem推广方案怎么写seo网站关键词优化方式
  • 拉企业做网站好干吗巨量算数官方入口
  • 天津市哪里有做网站广告的网站seo博客
  • 怎样建立自己购物网站营销推广有哪些公司
  • 如何建设一个好的网站栾城seo整站排名
  • wordpress文章网格免费网站分析seo报告是坑吗
  • 网站做程序员5000元网站seo推广
  • 工地建筑劳务公司招工平台搜索引擎seo优化平台
  • 上海站群优化公司开网店怎么推广运营
  • 淘宝做网站的公司模拟搜索点击软件
  • 教育类企业网站广州seo服务
  • 兰州做网站哪家好巩义网络推广公司
  • 盐城市政府门户网站建设成都营销推广公司
  • 北京网站开发费用阳西网站seo
  • 怎么去建设微信网站网站怎么建立
  • 织梦做的网站有点慢精准广告投放
  • 西安建设商城类网站百度seo指数查询
  • 小白一步步做网站中国国家人事人才培训网