文章目录
实现 nginx 角色
卸载httpd,创建相关目录
ansible webservers -m yum -a 'name=httpd state=absent'
mkdir -pv playbook/roles/nginx/{tasks,handlers,templates,vars}
tree playbook/roles/nginx
创建task文件
cd playbook/roles/nginx/tasks
vim main.yml
- include: install.yml
- include: config.yml
- include: index.yml
- include: service.yml
- 安装
vim install.yml
- name: install
yum: name=nginx
- 配置
vim config.yml
- name: config file for centos7
template: src=nginx7.conf.j2 dest=/etc/nginx/nginx.conf
when: ansible_distribution_major_version=="7"
notify: restart
- 网页:引用另一个role的网页文件
vim index.yml
- name: index.html
copy: src=roles/httpd/files/index.html dest=/usr/share/nginx/html/
# 这里用到了httpd角色的index.html文件,请注意路径一定要从roles开始写
- 启动服务
vim service.yml
- name: start service
service: name=nginx state=started enabled=yes
创建handler文件
- 重启服务
cd ../handlers/
vim main.yml
- name: restart
service: name=nginx state=restarted
准备模板文件
cp /etc/nginx/nginx.conf playbook/roles/nginx/templates/nginx7.conf.j2
修改参数:
user {{ user }};
worker_processes {{ ansible_processor_vcpus+2 }};
创建变量文件
cd playbook/roles/nginx/vars/
vim main.yml
user: daemon
查看目录结构:
tree playbook/roles/nginx/
在playbook中调用角色
cd playbook/
vim role_nginx.yml
---
#nginx role
- hosts: webservers
roles:
- role: nginx
ansible-playbook -C role_nginx.yml
ansible-playbook role_nginx.yml
ansible webservers -a 'yum remove -y nginx '
实现 memcached 角色
Memcached 是一个开源的,支持高性能,高并发的分布式内存缓存系统,由 C 语言编写。从软件名称上看,前 3 个字符 Mem 就是内存的意思,而接下来的后面 5 个字符 cache 就是缓存的意思,最后一个字符 d,是 daemon 的意思,代表的是服务器端守护进程模式服务。
使用 Memcached 的主要目的是,通过在自身内存中缓存关系型数据库的查询结果,减少数据库被访问的次数,以提高动态 Web 应用的速度,提高网站架构的并发能力和可扩展性。
Memcached 服务的运行原理是通过在事先规划好的系统内存空间中临时缓存数据库中的各类数据,以达到减少前端业务服务对数据库的直接高并发访问,从而提升大规模网站集群中动态服务的并发访问能力。
生产场景的 Memcached 服务一般被用来保存网站中经常被读取的对象或数据,就像我们的客户端浏览器也会把经常访问的网页缓存起来一样,通过内存缓存来存取对象或数据要比磁盘存取快很多,因为磁盘是机械的。因此,在当今的 IT 企业中,Memcached 的应用范围很广泛。
创建相关目录
mkdir roles/memcached/{tasks,templates} -pv
创建相关task任务
- main.yaml 包含所有的task任务
cd roles/memcached/tasks/
vim main.yml
- include: install.yml
- include: config.yml
- include: service.yml
- 安装软件
vim install.yml
- name: install
yum: name=memcached
- 配置环境
vim config.yml
- name: config file
template: src=memcached.j2 dest=/etc/sysconfig/memcached
- 启动服务
vim service.yml
- name: service
service: name=memcached state=started enabled=yes
准备模板文件
yum install memcached#本地主机先安装,获得配置文件memcached
cp /etc/sysconfig/memcached playbook/roles/memcached/templates/memcached.j2
cd playbook/roles/memcached/templates/
vim memcached.j2
PORT="11211"
USER="memcached"
MAXCONN="1024"
#CACHESIZE="64"
CHESIZE="{{ansible_memtotal_mb//4}}"#修改为总内存的1/4
OPTIONS=""
查看目录结构
tree /root/playbook/roles/memcached/
在playbook中调用角色
vim role_memcached.yml
---
- hosts: appsrvs
roles:
- role: memcached
ansible-playbook -C role_memcached.yml
ansible-playbook role_memcached.yml
ansible appservers -a 'ss -ntl'
#本地获取了配置文件就可以卸载掉了
yum remove -y memcached
实现多角色的选择
vim role_httpd_nginx.yml
---
- hosts: websrvs
roles:
- {role: httpd,tags: [httpd,web], when: ansible_distribution_major_version=="7" }
- {role: nginx,tags: [nginx,web], when: ansible_distribution_major_version=="8" }
ansible-playbook -C role_httpd_nginx.yml