什么是ansible
Ansible 部署nginx
首先我打开了三台虚拟机创建ansible集群,server1,server2和server4
在server1上安装ansible,部署ansible集群
安装包有依赖性,直接安装不行
必须全部一起安装
然后ansible --version查看ansible的版本
可以测试一下ping server2
发现不行
修改配置文件vim /etc/ansible/hosts
再尝试ping一下(为了方便测试,我们给他们之间配置ssh免密)
[root@server1 ~]# ssh-keygen
[root@server4 ~]# ssh-copy-id 172.25.60.2
[root@server4 ~]# ssh-copy-id 172.25.60.4
这次能ping通说明Ansible集群已经部署完成
接下来部署nginx
在server1上创建子目录
mkdir nginx/{files,templates,vars,handlers,meta,default,tasks} -pv
树形查看目录结构
修改配置文件
vim nginx/tasks/main.yml
- name: get package
copy: src=nginx-1.15.9.tar.gz dest=/mnt/nginx-1.15.9.tar.gz
- name: tar nginx
shell: cd /mnt;tar zxf nginx-1.15.9.tar.gz
- name: yum install
yum: name={{ item }} state=present
with_items:
- pcre-devel
- zlib-devel
- gcc
- openssl-devel
- name: install nginx
shell: useradd nginx;cd /mnt/nginx-1.15.9;./configure --prefix=/usr/local/nginx;make && make install
- name: copy index.html
copy: src=index.html dest=/usr/local/nginx/html/index.html
- name: copy nginx.conf
template: src=nginx.conf dest=/usr/local/nginx/conf/nginx.conf
- name: copy shell
copy: src=nginx dest=/usr/local/nginx/sbin/nginx
- name: start nginx
shell: /usr/local/nginx/sbin/nginx
vim nginx/handlers/main.yml
- name: reload nginx
shell: /usr/local/nginx/sbin/nginx -s reload
导入模板
我是通过节点虚拟机安装了一个nginx,把它下面的文件/usr/local/nginx/sbin/nginx和/usr/local/nginx/conf/nginx.conf拷贝到了这里生成模板
编写主入口:
Vim /etc/ansible/roles/main.yml
再查看一下目录结构
执行脚本:
ansible-playbook main.yml
访问网页: