Loading... ## 一、Roles 角色思想: - 模块化,可重复调用 **创建角色的注意事项:** 文件夹:目录树 Porject_Name roles #角色集合 mysql/ nginx/ tasks/ #任务模块 main.yml #角色入口 templates/ #模板文件 vars/ #变量文件 handlers/ #触发任务 httpd/ memcache/ nginx_roles.yml #调用角色,需要和roles文件夹同级 !> 以上就是简单的角色文件分布情况 ## 二、分析nginx角色部署的过程 1. 创建组 2. 创建用户 3. 安装Nginx 4. 拷贝模板文件 5. 启动服务 以上五个步骤就是实现Nginx的安装到启动 ## 三、编写角色 首先创建目录:默认的角色存放在`/etc/ansible/roles` ~]# mkdir /etc/ansible/roles/my_project ~]# cd /etc/ansible/roles/my_project ~]# mdkir -pv roles/{nginx,mysql,httpd} #创建多个角色,但是我们只用gninx ~]# cd roles/nginx ~]# mkdir tasks templates handlear vars ### 1. 编写yml文件 ~]# cd tasks 创建组任务: `group.yml` - name: Create Group group: name=nginx gid=80 创建用户任务: `user.yml` - name: Create User user: name=nginx uid=80 system=yes shell=/sbin/nologin group=nginx 安装nginx任务: `install.yml` - name: Install Nginx yum: name=nginx 拷贝模板文件任务: `template.yml` - name: Copy Config template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf 启动nginx任务: `start.yml` - name: Start Nginx service: name=nginx state=started enabled=yes 基本的功能都实现了,注意以上文件都在`/etc/ansible/roles/my_project/roles/nginx/tasks/`下 ### 2. 编写角色入口文件 文件名为`main.yml`,位置:`/etc/ansible/roles/my_project/roles/nginx/tasks/`(和所有任务在同级目录下) - import_tasks: group.yml - import_tasks: user.yml - import_tasks: install.yml - import_tasks: template.yml - import_tasks: start.yml #这里就定义了角色任务的执行顺序 当前目录下的文件如下:  ### 3. 准备模板文件 文件名为`nignx.conf.j2`,存放位置`/etc/ansible/roles/my_project/roles/nginx/templates/` user nginx; worker_processes {{ ansible_processor_vcpus+2 }}; #jinja2 表示进程数为cpu核心个数 +2 error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; root /usr/share/nginx/html; index index.html index.htm; } } 当前的目录树如下:  忽略restart.yml和乱码 ### 4. 调用角色 在roles同级目录编写: `nginx_roles.yml`;内容如下 --- - hosts: websrvs remote_user: root roles: nginx 这样一个完整nginx安装角色就完成了  ## 三、测试角色 ~]# ansible-playbook -C nginx_roles.yml ------------ <center>你许了我一米的阳光</center> <center>却给了我一世的沧桑</center> <center>那个她,你还记得吗</center> ------------ <center>  </center> 最后修改:2019 年 10 月 20 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏
1 条评论
你的文章充满了创意,真是让人惊喜。 https://www.4006400989.com/qyvideo/91259.html