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

坪山网站建设公司wordpress英文自动采集

坪山网站建设公司,wordpress英文自动采集,网站做图分辨率是多少合适,哪里有网站制作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.yayakq.cn/news/541757/

相关文章:

  • 欣宝儿在什么网站做直播公司网站开发有哪些
  • 网站域名设计方案做外汇网站
  • 如何快速增加网站收录制作网站哪家便宜
  • 织梦瀑布流网站模板网站怎么开发代码
  • 邢台哪里可以做网站河南建设网站制作
  • 网站制作公司北京网站建设公司哪家好网站数据库查询怎么做
  • 怎样申请建网站免费申请试用网站
  • 山东网站备案重庆市建设工程信息网劳务资质查询
  • 成都响应式网站建设wordpress降版本
  • 商城模板网站做外贸要有英文网站吗
  • 手机端网站html好看的单页模板广州市建设局官方网站
  • 个人网店和网站的区别企业品牌logo设计
  • 台州专业网站设计系统报告怎么写
  • 网站如何做交换链接广州和广州市注册公司区别
  • 泉州seo报价徐州整站优化
  • 罗泾网站建设个人网站建设基础与实例
  • 网站建设三方合同范本中英网站的设计
  • 湖北平台网站建设制作新网站怎么做才能让搜狗收录
  • wordpress博客网站建个购物网站要多少钱
  • 国外html5网站欣赏为什么选php语言做网站
  • vr功能网站建设集团网站建设建站模板
  • 高要网站建设网站建设公司+长春
  • 做一下网站需要什么时候开始ftp上传网站步骤
  • 怎么做找优惠券的网站未来 网站开发 知乎
  • 无锡制作网站公司哪家好深圳房地产网站建设
  • 网站备案编号wordpress 正文宽度
  • 域名证书查询网站2021公司起名字大全免费
  • vs网站开发建表怎么肩啊做财务还是网站运营
  • 软文营销文章案例公司网站排名优化手段
  • 做手机网站用什么网站数据库 备份