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 @ 2020-05-26 11:11  littlevigra  阅读(254)  评论(4)    收藏  举报