nginx的role理解 ansible开发运维 不错文档

1.整体文件框架

 

 2.调用主机和目标任务

[root@ks-allinone myansible_roles]# cat elasticsearch_service.yml 
---
- hosts: huidu
  roles:
  - role: elasticsearch

3.es配置

[root@ks-allinone elasticsearch]# cat files/elasticsearch.yml 
cluster.name: do1
node.name: node-1
path.data: /wxqyh/component/elasticsearch-6.2.2/data
path.logs: /wxqyh/component/elasticsearch-6.2.2/logs
network.host: 0.0.0.0
http.port: 9200

4.安装es步骤

[root@ks-allinone elasticsearch]# cat tasks/main.yml 
- include_tasks: install.yml
- include_tasks: config.yml
- include_tasks: start.yml
复制代码
[root@ks-allinone elasticsearch]# cat tasks/install.yml 
- name: useradd esuser
  shell: useradd esuser

- name: unpackage software
  shell: tar -zxf /wxqyh/soft/elasticsearch-6.2.2.tar.gz -C /wxqyh/component/

- name: mkdir -p data
  shell: mkdir -p  /wxqyh/component/elasticsearch-6.2.2/data

- name: mkdir -p logs
  shell: mkdir -p /wxqyh/component/elasticsearch-6.2.2/logs

- name: change permission
  shell: chown -R esuser.esuser /wxqyh/component/elasticsearch-6.2.2/

- name: max map count
  shell: grep "vm.max_map_count" /etc/sysctl.conf || echo "vm.max_map_count = 655360" >> /etc/sysctl.conf

- name: soft nofile
  shell: grep 'esuser soft nofile 65535' /etc/security/limits.conf || sed -i '$i esuser soft nofile 65536' /etc/security/limits.conf

- name: hard nofile
  shell: grep 'esuser hard nofile 65535' /etc/security/limits.conf || sed -i '$i esuser hard nofile 65536' /etc/security/limits.conf

- name: sysctl -p
  shell: sysctl -p

- name: plugin install
  shell: /wxqyh/component/elasticsearch-6.2.2/bin/elasticsearch-plugin install file:////wxqyh/soft/elasticsearch-analysis-ik-6.2.2.zip
复制代码
[root@ks-allinone elasticsearch]# cat tasks/start.yml 
- name: start es service
  shell: su esuser -c "/wxqyh/component/elasticsearch-6.2.2/bin/elasticsearch -d &"
[root@ks-allinone elasticsearch]# 

 参考: http://www.zhangblog.com/2020/01/09/ansible-12/

 ------------------------------------------------------------------------------------------

1.role的目录结构

复制代码
[root@frontend-1 my_test_role]# tree
.
|-- gccrole
|   `-- tasks
|       `-- main.yaml
|-- nginxrole
|   `-- tasks
|       `-- main.yml
`-- test.yml

4 directories, 3 files
复制代码

2.task的内容

[root@frontend-1 my_test_role]# cat nginxrole/tasks/main.yml
- debug:
      msg: "{{ nginx_var }}"

- name: yum install nginx
  yum:
     name: nginx
     state: present

3.主执行文件

复制代码
[root@frontend-1 my_test_role]# cat test.yml
---
- hosts: frame
  vars:
    - nginx_var: "good_problem"
    - gcc_var: "gcc_problem"
  roles:
    - nginxrole
    - gccrole
复制代码

 4.role的标准规范

复制代码
1.在编写处理nginx的playbook时,会创建一个名叫nginxrole的文件夹

2.nginx的目录中创建一些子目录,比如,task目录、temp目录、default目录

3.将一些安装配置的任务剧本放在task目录中

4.会用到的模板文件放到temp目录中

5.把nginx的相关配置过程抽象成一个nginx角色,以便下次需要进行同样的配置时,调用这个角色
复制代码

 

posted @   littlevigra  阅读(247)  评论(4编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
历史上的今天:
2018-05-26 多线程简单案例 - join( ) -lock()
点击右上角即可分享
微信分享提示