简介
家里的服务器新开了两台虚拟机,想做nginx负载均衡的实验,但是要重新安装各种服务,就很麻烦,正好最近学了ansible-playbook,就想试着写一下一键部署脚本
代码
具体的安装方式我前几篇博客已经说了 话不都说,上代码
代码语言:javascript复制vi installnginx.yml
- hosts: test2
remote_user: root
tasks: #这后面千万不要加空格,不知道被哪家的教程坑了,我拍错了一个多小时
- name: mkdir nginx
file: path=/home/nginx state=directory
- name: copynginx package
copy: src=./nginx-1.12.0.tar.gz dest=/home/nginx-1.12.0.tar.gz ##拉取nginx解压吧
tags: cppkg
- name: tar-nginx
shell: cd /home;tar -zxf nginx-1.12.0.tar.gz ##解压nginx包
- name: installpakger
yum: name={{ item }} state=latest ##安装依赖包
with_items:
- openssl-devel
- pcre-devel
- zlib-devel
- gcc
- gcc-c
- name: installnginx
shell: cd /home/nginx-1.12.0;./configure --prefix=/home/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-pcre;make&& make install ####编译安装
- name: copyshell
copy: src=./create_users.sh dest=/home/create_users.sh ##拉取创建用户的shell脚本
- name: createuser nginx
shell: /bin/bash /home/create_users.sh
tags: addnginx
notify: start nginx servic
handler:
- name: start nginx service
shell: /home/nginx/sbin/nginx
创建用户脚本
vi create_users.sh
#!/bin/bash
ab=sudo cat /etc/passwd |grep nginx |wc -c
查找系统中有没有nginx用户
if [ $ab==0 ]; then
sudo groupadd nginx
sudo useradd -g nginx -s /sbin/nologin nginx
fi
创建主机清单
代码语言:javascript复制➜ vi hosts
[test2]
192.168.30.105 ansible_ssh_user=root
192.168.30.107 ansible_ssh_user=root
➜ ansible ansible -i ./hosts test2 --list
hosts (2):
192.168.30.105
192.168.30.107
#然后下载nginx源代码包
➜ wget http://mirrors.sohu.com/nginx/nginx-1.12.0.tar.gz
#执行
ansible-playbook -i ./hosts 2.yml
等待一会就好了