Ansible yaml非标记语言和角色扮演

一.YAML-YAML Ain’t Markup Language-非标记语言
1.语法:

列表
	fruits:
	    - Apple
	    - Orange
	    - Strawberry
	    - Mango
字典
	martin:
	    name: Martin D'vloper
	    job: Developer
	    skill: Elite

2.示例:
需求:通过YAML编写一个简单的剧本,完成web的部署,配置,启动的全过程。

ansible服务器
    准备工作
	ansible all -m yum -a 'name=httpd state=removed' -o
		清理一下环境
	yum install -y httpd
		准备配置文件
	mkdir apache
	cd apache
	cp -rf /etc/httpd/conf/httpd.conf .
	grep '^Listen' httpd.conf
		Listen 8080
			修改配置,用作推送
	编写剧本
	vim apache.yaml
		- hosts: webserver
  tasks:
  - name: install apache packages
    yum: name=httpd state=present
  - name: copy apache conf
    copy: src=./httpd.conf dest=/etc/httpd/conf/httpd.conf
  - name: ensure apache is running
    service: name=httpd state=started enabled=yes
	测试:
	ansible-playbook apache.yaml  --syntax-check
		 检验语法
	ansible-playbook apache.yaml --list-tasks
		列出任务
	ansible-playbook apache.yaml --list-hosts
		 列出主机
	ansible-playbook apache.yaml
		执行
	http://192.168.152.182:8080/
		注意端口	
如果配置文件发生变化。		Listen  9090
ansible-playbook apache.yaml
再次执行,命令成功,但配置未生效,所以要增加处理程序。设置触发器

在这里插入图片描述如果配置文件再发生变化。 Listen 9080
ansible-playbook apache.yaml 再次执行,配置生效,触发成功

二.Role-角色扮演
简介:roles则是在ansible中,playbooks的目录组织结构。将代码或文件进行模块化,成为roles的文件目录组织结构,易读,代码可重用,层次清晰。
目标:通过role远程部署nginx并配置
1.目录结构

准备目录结构
	mkdir roles/nginx/{files,handlers,tasks,templates,vars} -p
	touch roles/site.yaml roles/nginx/{handlers,tasks,vars}/main.yaml
	echo 1234 > roles/nginx/files/index.html
	yum install -y nginx && cp /etc/nginx/nginx.conf roles/nginx/templates/nginx.conf.j2

在这里插入图片描述nginx 角色名
files 普通文件
handlers 触发器程序
tasks 主任务
templates 金甲模板(有变量的文件)
vars 自定义变量
2.编写任务

vim roles/nginx/tasks/main.yaml
	---
- name: install epel-release packge
  yum: name=epel-release state=latest

- name: install nginx packge
  yum: name=nginx  state=latest

- name: copy index.html
  copy: src=index.html dest=/usr/share/nginx/html/index.html

- name: copy nginx.conf template
  template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf
  notify: restart nginx

- name: make sure nginx service running
  service: name=nginx state=started enabled=yes

		对迭代项的引用,固定变量名为"item”,使用with_item属性给定要迭代的元素;

3.准备配置文件
vim roles/nginx/templates/nginx.conf.j2

worker_processes  {{ ansible_processor_cores }};
调用内部已知变量
worker_connections {{ worker_connections }};
自定义变量

4.编写变量
vim roles/nginx/vars/main.yaml
在这里插入图片描述5.编写处理程序
vim roles/nginx/handlers/main.yaml
在这里插入图片描述
6.编写剧本
vim roles/site.yaml
在这里插入图片描述
7.实施
cd roles 切换路径
ansible-playbook site.yaml --syntax-check 测试
在这里插入图片描述ansible-playbook site.yaml 执行剧本

在这里插入图片描述验证
在这里插入图片描述在这里插入图片描述三.扩展知识

了解行业背景知识
==采购服务器并托管==

  1. 了解DELL常见服务器的价格、型号、配置(CPU,内存、硬盘、支持的RAID功能)(3款)
  2. 了解HP常见服务器的价格、型号、配置(CPU,内存、硬盘、支持的RAID功能)(3款)
  3. 了解常见的硬盘接口类型、速率、价格如:ATA, SATA, SCSI, SAS, FC(3款)
  4. 了解国内主要是北京托管商的信息如:厂商名称、托管的价格、地理位置(光环新网/世纪互联)(3家)

==云主机==

  1. 了解青云qingcloud.com如价格、基本部署
  2. 了解阿里云价格、基本部署
  3. 了解阿亚马逊云价格、基本部署
  4. 了解腾讯云价格、基本部署

==DNS 解析==

  1. 了解国内主要的DNS ISP如万网、新网、DNSPOD、阿里DNS
  2. 申请自己的域名,学习在DNS管理界面上添加各种记录

==CDN 技术==
1.了解国内主要的3家CDN ISP,对比其价格、性能、市场的占有率等
2.了解主要CDN购买及使用方式
3.了解反向代理技术Varnish原理及部署
4.查看126.com,sina.com, baidu.com使用的代理机制
[root@tianyun ~]# curl -I http http://www.126.com
DELL R730

戴尔PowerEdge R730 机架式服务器(Xeon E5-2603 V3/8GB/1.2TB)

所属:
戴尔 PowerEdge R730 机架式
产品类别:机架式
CPU型号:Xeon E5-2603 v3 1.6GHz
标配CPU数量:1颗
内存容量:8GB DDR4
标配硬盘容量:1.2TB
内部硬盘架数:最大支持16块2.5英寸硬盘-使用1.2TB热插拔SAS硬盘最高可配19.2TB
网络控制器:四端口千兆网

¥1.18万 2019-02-07
DELL R740

戴尔PowerEdge R740 机架式服务器(R740-A420805CN)

所属:
戴尔 PowerEdge R740 机架式
产品类别:机架式
CPU型号:Xeon Bronze 3104 1.7GHz
标配CPU数量:1颗
内存容量:8GB DDR4
标配硬盘容量:600GB*2
内部硬盘架数:前置硬盘托架: 高达16×2.5"SAS/SATA/SSD,最大60TB 高达8×3.5"SAS/SATA,最大80TB
网络控制器:QLogic FastL 

¥1.84万 2019-02-07
DELL R940

戴尔PowerEdge R940 机架式服务器(R940-A420813CN)

所属:
戴尔 PowerEdge R940 机架式
产品类别:机架式
CPU型号:Xeon Gold 5120 2.2GHz
标配CPU数量:2颗
内存容量:32GB DDR4
标配硬盘容量:1.2TB
内部硬盘架数:最大支持8块2.5英寸硬盘
网络控制器:Broadcom 572 

¥8.82万 2019-02-07
服务器托管费用示例
服务器托管的收费依据,服务器托管按照空间大小、电量消耗、以及带宽大小、IP数量还有机房等级来确定收费的。一般来说最低的托管配置是:

托管规格:1U
机柜功率:1A/220V
带宽:10M独享
IP地址:1个
电力:1A
网络线路:BGP线路
这个配置的托管,目前九河互联深圳数据中心月付是699元,年付6999元。在国内这个价格算是非常便宜的了,当然更重要的是上述网络是阿里云BGP,稳定性和性价比都非常优越。
百度云CDN计费标准
百度云CDN计费标准

按使用流量计费:CDN内容分发是按下行流量计费方式,是一种后付费模式;用户可以按照时间使用的流量付费,也可以通过购买流量包来抵扣;

按日峰值带宽计费:日峰值计费模式不限流量,日峰值带宽是指CDN每天的最高峰值,按照当天的最高CDN峰值计费,默认日峰值带宽上限是100Gbps;

注意:CDN按日峰值带宽计费和按流量计费可以相互切换,提交切换申请后,在第二日零点生效。用户可以根据自身的实际情况选择最优的付费模式,例如:平时流量较少的用户可以选择按流量计费。
一:按使用流量计费价格表
流量阶梯 折扣价(元/GB)
0GB-10TB(含) 0.20
10TB-50TB(含) 0.17
50TB-100TB(含) 0.14
100TB-1PB(含) 0.12
大于1PB 0.10

举例说明:

如累计消耗流量为10300GB,则其中10000G属于0GB–10TB阶梯内,单价为0.20元/GB。剩下的300G在10TB-50TB阶梯内,则单价为0.17元/GB。则总账单金额为10000GB ∗ 0.20元/GB+300GB ∗ 0.17元/GB=2051元。

当然,用户也可以通过购买流量包的形式来抵扣CDN所产生的流量,流量包计费说明参考:百度云CDN流量包收费价格表
二:按日峰值带宽计费
规格 单价(元/Mbps/日)
0~500Mbps(含) 0.52
500Mbps-5Gbps(含) 0.51
5Gbps-20Gbps(含) 0.48
大于20Gbps 0.47

举例说明:

用户当日的峰值带宽为912Mbps,则用户的账单费用应为912 ∗ 0.51元=465.12元。
如何在ansible中,使用不同的用户登录不同的主机?
	在主机清单里设置
[webservers`]
asdf.example.com  ansible_port=5000   ansible_user=alice  ansible_pass=123456
jkl.example.com   ansible_port=5001   ansible_user=bob   ansible_pass=654321
判断主机地址为10.18.46.37的主机。关闭该主机
	- hosts: webserver
  tasks:
  - name: "shut down 10.18.46.37 systems"
    command: /usr/sbin/init 0
    when: ansible_all_ipv4_addresses == "10.18.46.37"
		关闭两台呢?
			- hosts: webserver
  tasks:
  - name: "shut down 10.18.46.37 systems"
    command: /usr/sbin/init 0
    when: (ansible_all_ipv4_addresses == "10.18.46.37") or(ansible_all_ipv4_addresses == "10.18.46.47"
循环创建多个用户
	- hosts: host2
  tasks:
  - name: add several users
    user: name={{ item }} state=present groups=wheel
    with_items:
       - testuser1
       - testuser2

如何加密hosts主机清单文件

cat hosts2
wali  ansible_ssh_host=10.0.0.1 ansible_ssh_port=14573
 
ansible -i /etc/ansible/hosts2 all -m shell -a "uptime"
设定密码加密主机清单
ansible-vault encrypt /etc/ansible/hosts2
输入密码编辑主机清单
ansible-vault edit /etc/ansible/hosts2
输入密码才能执行
ansible -i /etc/ansible/hosts2 all -m ping --ask-vault-pass
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值