Ansible 利用playbook批量部署Nginx
我这里直接部署的,环境已经搭建好,如果不知道的小伙伴可以看上一遍ansible搭建,都写好了,这里是根据前面环境部署的
192.168.30.21 ansible
192.168.30.25 client1
192.168.30.26 client2
- 创建目录结构
[root@ansible ~]# mkdir -pv /etc/ansible/roles/nginx/{files,handlers,tasks,templates,vars}
mkdir: 已创建目录 "/etc/ansible/roles/nginx"
mkdir: 已创建目录 "/etc/ansible/roles/nginx/files"
mkdir: 已创建目录 "/etc/ansible/roles/nginx/handlers"
mkdir: 已创建目录 "/etc/ansible/roles/nginx/tasks"
mkdir: 已创建目录 "/etc/ansible/roles/nginx/templates"
mkdir: 已创建目录 "/etc/ansible/roles/nginx/vars"
2,把Nginx的压缩包放到 /etc/ansible/roles/nginx/files/文件下
[root@ansible files]# ls -l /etc/ansible/roles/nginx/files/nginx-1.16.0.tar.gz
-rw-r--r--. 1 root root 1032345 5月 16 16:57 /etc/ansible/roles/nginx/files/nginx-1.16.0.tar.gz
3.定义一个主调用文件
[root@ansible ansible]# vim /etc/ansible/nginx.yaml
- hosts: cloud
gather_facts: True
remote_user: root
roles:
- nginx
4.handlers:此目录至少应该包含一个名为main.yml文件,用来定义handers
其他的文件需要由main.yml进行“包含”调用
[root@ansible files]# vim /etc/ansible/roles/nginx/handlers/main.yaml
- name: start nginx
raw: /usr/local/nginx/sbin/nginx
5.tasks:目录至少应该有一个名为main.yml的文件,用来定义各task,其他的需要main.yml进行“包含”调用(这里我把配置文件中的用户默认登录为nginx)
[root@ansible files]# vim /etc/ansible/roles/nginx/tasks/main.yaml
- name: yum install
yum: name={{ item }} state=latest
with_items:
- openssl-devel
- pcre-devel
- zlib-devel
- gcc
- gcc-c++
- make
- name: user nginx
shell: useradd -M -s /sbin/nologin nginx
- name: package
copy: src=nginx-1.16.0.tar.gz dest=/usr/src
- name: install nginx
shell: cd /usr/src ;tar xf nginx-1.16.0.tar.gz -C /usr/src; cd /usr/src/nginx-1.16.0; ./configure --prefi
x=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stu
b_status_module --with-http_gzip_static_module --with-pcre && make && make install
- name: copy conf file
template: src=nginx.conf dest=/usr/local/nginx/conf/nginx.conf
notify:
- start nginx
6.templates: 存储由template 模块调用的模块文本,(这里我添加一个基于识别CPU的模块)会在客户端配置文件中显示)(建议修改或者添加自己的CPU数量
这样我们的自动化更智能)
[root@ansible files]# vim /etc/ansible/roles/nginx/templates/nginx.conf
user nginx;
worker_proccesses {{ ansible_processor_vcpus }};
{% if ansible_processor_vcpus == 1%}
worker_cpu_affinity 10;
{% elif ansible_processor_vcpus == 2%}
worker_cpu_affinity 01 10;
{% elif ansible_processor_vcpus == 4%}
worker_cpu_affinity 0001 0010 0100 1000;
{% elif ansible_processor_vcpus == 8%}
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 0
0100000 01000000 10000000;{% else %}
worker_cpu_affinity 0001 0010 0100 1000;
{% endif %}
error_log logs/error.log;
pid logs/nginx.pid;
events {
use epoll;
worker_connections 65535;
}
http {
include 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 logs/access.log main;
sendfile on;
keepalive_timeout 65;
gzip on;
server {
listen {{ nginxport }};
server_name {{ server_name }};
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
7.vars :此目录至少应该有一个名为main.yml的文件,用于定义各variable,其他的文件
需要由main.yml 进行“包含”调用;
[root@ansible files]# vim /etc/ansible/roles/nginx/vars/main.yaml
nginxport: "80"
server_name: "www.ansible.com"
8.meta :此目录中至少应该有一个名为main.yml 的文件,定义当前角色的特殊设定及依赖关系,其他的文件需要由main.yml进行“包含”调用
Default :此目录中至少应该有一个名为main.yml的文件,用于设定默认变量
9测试部署
[root@ansible templates]# ansible-playbook /etc/ansible/nginx.yaml
[root@client1 ~]# netstat -anpt |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9483/nginx: master
[root@client2 ~]# netstat -anpt |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9483/nginx: master
查完之后CPU会自动调试,执行完毕可以去客户端测试查看配置文件cpu和用户
Ansible 利用playbook批量部署Nginx的更多相关文章
- Ansible 利用playbook批量部署mariadb
环境说一下 192.168.30.21 ansible 192.168.30.25 client1 192.168.30.26 client2 这里我的ansible环境已经部 ...
- ansible结合playbook批量部署war包项目上线
批量部署jenkins.war包实现上线 用于测试war包上线 [root~localhost]~#vim /etc/ansible/test.yml - hosts: test vars: ...
- 使用Playbook批量部署多台LAMP环境
1. 安装ansible yum install epel-release -y yum install ansible -y Playbook是一个不同于使用ansible命令行执行方式的模式,功能 ...
- Ansible基于playbook批量修改主机名实战
Ansible基于playbook批量修改主机名 安装Ansible,相信这里也不用多说,大家都知道 说一下环境:这里的主机名是修改之后的,我先把其他两台的主机名改为别的 192.168.30.21 ...
- ansible批量部署nginx
1.1 将nginx的安装包,和安装脚本copy到客户端,并安装脚本 vim /ansible/roles/nginx/tasks/main.yml - name: copy nginx_tar_gz ...
- ansible:playbook详解
Blog:博客园 个人 概述 playbook是由一个或者多个play组成的列表. 主要功能是将预定义的一组主机装扮成事先通过ansible中的task定义好的角色.task实际是调用ansible的 ...
- Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站(6)
前言 在之前已经写了关于Git,Gitlab以及Ansible的两篇博客<Git+Gitlab+Ansible剧本实现一键部署Nginx–技术流ken>,<Git+Gitlab+An ...
- Git+Gitlab+Ansible剧本实现一键部署动态网站(5)
项目前言 之前已经写了一篇关于git和ansible的博客<Git+Gitlab+Ansible剧本实现一键部署Nginx–技术流ken>.关于git,gitliab,ansible在我以 ...
- 利用ansible批量部署zabbix-agent
应用环境:Linux运维工作少不了一个好的监控,zabbix就是目前比较好的一款开源监控软件. 监控类型多种多样,如果不介意或者系统支持安装,那么agent方式是首选. 当主机数量较多时,可以利用相关 ...
随机推荐
- sizeof小览
一.文章来由-一道面试题迁出的探究 我发现我已经形成一种习惯写来由了,以后看博客的时候能够让我回顾起为什么出现这个问题,我用什么方法解决的,既然形成习惯就让这个习惯保持下去吧.今天实验室师姐在看书,一 ...
- Bag of word based image retrieval
主要参考维基百科Bag of Word 在DLP领域里,bow(bag of word)是一个稀疏的向量,向量的每个元素记录词的出现次数,相当于对每篇文章都关于词典做词的直方图统计.同样的道理用在co ...
- 2015南阳CCPC C - The Battle of Chibi DP树状数组优化
C - The Battle of Chibi Description Cao Cao made up a big army and was going to invade the whole Sou ...
- ASP.NET无法检测IE10浏览器,导致无法登录
今天发现在IE10中打开我开发的网站时,无法登入,页面总会自动重新退出到登录页,后经上网查资料发现这是ASP.NET 2.0.3.5和4.0的Bugs,因这些版本的.NET Framework无法识别 ...
- bzoj1805: [Ioi2007]Sail 船帆
可以发现旗杆的顺序是没有用的,对于每列,它的答案是它的最大值mx*(mx+1)/2 高度由小到大排序旗杆,问题可以转化为在前h行选k个最小的值 考虑激情splay乱搞(我只会splay......) ...
- JSTL判断list的size()大小,以及choose(相当于if else作用)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ tag ...
- Notepad++ - 通过语言格式设置自定义语法高亮颜色
http://blog.csdn.net/onceing/article/details/51554399 Global Styles Indent guideline style 缩进参考线的颜色 ...
- PCB 钻孔补偿那点事
没有优秀的个人,只有优秀的团队,在团队共同的协作下,PCB CAM自动化[net处理]与[钻孔处理] 第一阶段开发项完成了,,后续工作可以转向PCB规则引擎开发了.这里说说PCB工程钻孔补偿的那点事, ...
- [Swift通天遁地]四、网络和线程-(7)检测服务器接口的访问状态:验证请求结果和可访问性
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- 如何看待B站疑似源码泄漏的问题?
今天突然看到关于B站源码泄漏事.网曝B站整个网站后台工程源码遭泄露,开源项目平台Github上疑似出现了Bilibili网站后台工程,内含部分用户名密码.目前官方还没对此事作出任何回应,所以还无法确定 ...