前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux云计算运维架构师(连载)-自动化运维ansible-14

Linux云计算运维架构师(连载)-自动化运维ansible-14

原创
作者头像
用户1880875
修改2021-07-06 11:01:17
1.4K0
修改2021-07-06 11:01:17
举报
文章被收录于专栏:用户1880875的专栏

3.修改配置文件

修改Nginx的配置文件,具体如下所示。

#作以下修改

[root@ansible ~]# vim roles/nginx/templates/nginx.conf.j2

大概第六行

#worker_processes auto;

worker_processes {{ ansible_processor_cores }};

大概第15行

# worker_connections 1024;

worker_connections {{ worker_connections }};

#完成后的样子:

# For more information on configuration, see:

user nginx;

#worker_processes auto;

worker_processes {{ ansible_processor_cores }};

error_log /var/log/nginx/error.log;

pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.

include /usr/share/nginx/modules/*.conf;

events {

# worker_connections 1024;

worker_connections {{ worker_connections }};

}

······此处省略部分代码······

此处将配置文件中的worker_processes(工作进程)参数的值修改为ansible_processor_cores,将worker_connections(连接数量)参数的值也修改为了变量。

其中ansible_processor_cores是Ansible内部的一个已知变量,其的含义是通过Ansible服务器获取客户机的CPU核数。即,当Ansible读取该参数时会先获取客户机的CPU核数,然后将获取到的数值作为变量值填写到此处,再进行后续的操作。worker_connections(连接数量)是一个自定义变量,需要在roles下的var文件夹中进行定义。

4.编写变量

由于配置文件中的worker_connections变量是用户的自定义变量,所以需要用户来定义它的值,代码如下所示。

[root@ansible ~]# vim roles/nginx/vars/main.yaml

[root@ansible ~]# cat roles/nginx/vars/main.yaml

worker_connections: 10240

此处定义了worker_connections的值为10240。若读者有其他需要定义的变量,都可以在该文件中进行定义。

5.编写处理程序

任务文件中调用的处理程序应当定义在handlers目录中。在本小节的第二步中,剧本调用了重启Nginx服务的处理程序,其定义代码如下所示。

[root@ansible ~]# vim roles/nginx/handlers/main.yaml

[root@ansible ~]# cat roles/nginx/handlers/main.yaml

---

- name: restart nginx

service: name=nginx state=restarted

6.分配角色

给定义完成的剧本分配角色,即指定执行剧本的客户机并为其安排剧本,代码如下所示。

[root@ansible ~]# vim roles/site.yaml

[root@ansible ~]# cat roles/site.yaml

- hosts: host3

roles:

- nginx

这里指定了执行任务的主机为host3,并且指定执行的任务为“nginx”。需要注意的是,此处的nginx指的是rolers/nginx目录,表示该目录下包含了整个任务。

7.执行剧本

playbook配置完成之后,即可开始执行,代码及结果如下所示。

#切换至roles目录下

[root@ansible ~]# cd roles

#检验语法

[root@ansible roles]# ansible-playbook site.yaml --synax-check

playbook: site.yaml

#检验无误后开始执行

[root@ansible roles]# ansible-playbook site.yaml

PLAY [host3]

*******************************************************************

TASK [Gathering Facts]

*********************************************************

ok: [host3]

TASK [nginx : install epel-release packge]

*************************************

ok: [host3]

TASK [install nginx packge]

****************************************************

ok: [host3]

TASK [nginx : copy index.html]

*************************************************

ok: [host3]

TASK [copy nginx.conf template]

************************************************

changed: [host3]

TASK [make sure nginx service running]

*****************************************

changed: [host3]

RUNNING HANDLER [restart nginx]

************************************************

changed: [host3]

PLAY RECAP

*********************************************************************

host3 : ok=7 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

通过代码的反馈结果可以看到剧本已成功执行。通过访问客户机的IP地址即可进行验证,结果如图1.8所示。

图1.2 访问结果

通过图1.8中可以看到,客户机主页内容为之前配置的1234,演出成功结束。

1.1 小结

本套章为读者介绍了自动化运维工具Ansible的概念、工作原理、主机清单、配置模块、YAML语言的使用方式以及playbook的编写规则及案例实战。通过本章的学习,希望读者能够了解Ansible的工作原理,熟悉Ansible的组成模块与配置方式,熟练结合Ansible与playbook实现多功能或应用的一键部署。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 小结
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档