一、主机准备

ServerIP:10.10.10.102

ClientIP:  10.10.10.103,10.10.10.104

二、安装ansible

yum -y install ansible

 

三、配置免密登录

1.在Server上制作公钥和私钥

[root@localhost roles]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:fsarmF7FOVq6/s2ka/VjhEIjbnEcPoQvobEqL1dV63g root@localhost.localdomain
The key's randomart image is:
+---[RSA ]----+
| . |
| . o + |
| + B o |
| o =.X. |
| . oSO*o . |
| . . ..+*E.o . |
| o . .=.+o.o |
| . o + +.* + |
| o .+.++=.o. . |
+----[SHA256]-----+
[root@localhost roles]#

2.将Server上的公钥复制到Client上

ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 root@10.10.10.103
ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 root@10.10.10.104
#写入成功后会在10.10.10.103目录~/.ssh/下生成authorized_keys

#验证免密登录是否成功,回车后能登录成功,说明设置成功
ssh root@10.10.10.103

四、编写ansible相关配置文件

1.ansible的目录结构如下

├── ansible.cfg
├── hosts
├── install_nginx.yml
└── roles
     └── install_nginx
          ├── files
          │   ├── install_nginx.sh
          │   └── nginx-1.14.0.tar.gz
          ├── tasks
          │   └── main.yml
          ├── templates
          └── vars
              └── main.yml


2.相关配置文件内容如下:

/etc/ansible/hosts文件:

[Client]
10.10.10.103
10.10.10.104

/etc/ansible/install_nginx.yml

[root@CentOS7 ansible]# more install_nginx.yml
---
- hosts: Client
roles:
- install_nginx

/etc/ansible/roles/install_nginx/files/install_nginx.sh

[root@CentOS7 files]# more install_nginx.sh
#!/bin/bash cd /usr/local/nginx-1.14.
./configure --prefix=/usr/local/nginx
make && make install /usr/local/nginx/sbin/nginx

/etc/ansible/roles/install_nginx/tasks/main.yml

[root@CentOS7 tasks]# more main.yml
---
- name: Install Software
yum: name={{ item }} state=latest
with_items:
- gcc
- gcc-c++
- zlib-devel
- pcre-devel
- openssl
- openssl-devel
- name: Copy nginx.tar.gz
copy: src=nginx-{{ nginx_version }}.tar.gz dest={{ nginx_dir }}/nginx-{{ nginx_version }}.tar.gz owner=root group=root
- name: Copy install_nginx.sh
copy: src=install_nginx.sh dest=/tmp/install_nginx.sh
- name: uncompress nginx.tar.gz
shell: tar -xf {{ nginx_dir }}/nginx-{{ nginx_version }}.tar.gz -C {{ nginx_dir }}/
- name: install nginx
shell: /bin/bash /tmp/install_nginx.sh

/etc/ansible/roles/install_nginx/vars/main.yml

[root@CentOS7 vars]# more main.yml
nginx_dir: /usr/local
nginx_version: 1.14.

五、使用ansible安装nginx并启动

[root@CentOS7 ansible]# cd /etc/ansible
[root@CentOS7 ansible]# ansible-playbook install_nginx.yml

PLAY [Client] ******************************************************************************************************************************************************

TASK [Gathering Facts] *********************************************************************************************************************************************
ok: [10.10.10.103]
ok: [10.10.10.104] TASK [install_nginx : Install Software] ****************************************************************************************************************************
ok: [10.10.10.103] => (item=[u'gcc', u'gcc-c++', u'zlib-devel', u'pcre-devel', u'openssl', u'openssl-devel'])
ok: [10.10.10.104] => (item=[u'gcc', u'gcc-c++', u'zlib-devel', u'pcre-devel', u'openssl', u'openssl-devel']) TASK [install_nginx : Copy nginx.tar.gz] ***************************************************************************************************************************
changed: [10.10.10.103]
changed: [10.10.10.104] TASK [install_nginx : Copy install_nginx.sh] ***********************************************************************************************************************
changed: [10.10.10.103]
changed: [10.10.10.104] TASK [install_nginx : uncompress nginx.tar.gz] *********************************************************************************************************************
[WARNING]: Consider using unarchive module rather than running tar changed: [10.10.10.103]
changed: [10.10.10.104] TASK [install_nginx : install nginx] *******************************************************************************************************************************
changed: [10.10.10.103]
changed: [10.10.10.104] PLAY RECAP *********************************************************************************************************************************************************
10.10.10.103 : ok= changed= unreachable= failed=
10.10.10.104 : ok= changed= unreachable= failed=

六、验证

在安装完成后,可以到Client验证nginx是否安装完成!

如下是在10.10.10.104上的验证结果:

[root@CentOS7 local]# ps -ef|grep nginx
root : ? :: nginx: master process /usr/local/nginx/sbin/nginx
nobody : ? :: nginx: worker process
root : pts/ :: grep --color=auto nginx
[root@CentOS7 local]#

【ansible】使用ansible安装nginx的更多相关文章

  1. Ansible 使用 Playbook 安装 Nginx

    思路:先在一台机器上编译安装好 Nginx,打包,然后通过 Ansible 下发 [root@localhost ~]$ cd /etc/ansible/ [root@localhost ansibl ...

  2. ansible roles实践——安装nginx

    1.创建roles 在/etc/ansible/roles目录下 1.1 手动创建需要的目录 1.2 使用命令创建,用不到的目录可以创建为空目录,但不可以不创建. 创建目录[root@master] ...

  3. ansible的playbook进行yum批量安装nginx最新版本

    环境:centos7 版本:nginx最新版本 软件: ansible 作用: 进行批量执行不同机器上,进行安装nginx版本 检查脚本是否正确: [root@ansible-test ansible ...

  4. ansible安装nginx

    ansible安装nginx(实现回滚发布功能:下一篇博客.没想到写长了) 一.准备工作 1.准备两台机器 sai: 192.168.131.132  ——> ansible的服务端 luojy ...

  5. ansible案例-安装nginx

    一.创建目录: mkidr -p playbook/{files,templates}   二.自定义index.html文件 $ vim playbook/templates/index.html. ...

  6. 使用Ansible安装部署nginx+php+mysql之安装nginx(1)

    使用Ansible安装nginx 1.nginx.yaml文件 --- - hosts: clong remote_user: root gather_facts: no tasks: # 安装epe ...

  7. Ansible 入门指南 - 安装及 Ad-Hoc 命令使用

    安装及配置 ansible Ansilbe 管理员节点和远程主机节点通过 SSH 协议进行通信.所以 Ansible 配置的时候只需要保证从 Ansible 管理节点通过 SSH 能够连接到被管理的远 ...

  8. ansible指路篇-安装及基本命令使用

    ansible指路篇-安装及基本命令使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是ansible ansible是新出现的自动化运维工具,基于Python开发,集合 ...

  9. ansible示例,离线安装etcd

    一.基础介绍 ========================================================================================== 1. ...

随机推荐

  1. sublimetext3安装配置

    官网:http://www.sublimetext.com/ 中文官网:http://www.sublimetextcn.com/ 包管理器:https://packagecontrol.io/ins ...

  2. 青松云安全-WAF-1.0.655 (ubuntu 14.04 server)

    平台: Ubuntu 类型: 虚拟机镜像 软件包: web application firewall basic software security ubuntu waf 服务优惠价: 按服务商许可协 ...

  3. Android(java)学习笔记94: SurfaceView使用

    1. SurfaceView简介    在一般的情况下,应用程序的View都是在相同的GUI线程(UI主线程)中绘制的.这个主应用程序线程同时也用来处理所有的用户交互(例如,按钮单击或者文本输入). ...

  4. objective C 内存管理及属性方法具体解释

    oc为每一个对象提供一个内部计数器.这个计数器跟踪对象的引用计数,当对象被创建或拷贝时.引用计数为1.每次保持对象时,调用retain接口.引用计数加1.假设不需要这个对象时调用release,引用计 ...

  5. 【BZOJ1064】[NOI2008] 假面舞会(图上DFS)

    点此看题面 大致题意:有\(k\)种面具(\(k\)是一个未知数且\(k≥3\),每种面具可能有多个),已知戴第\(i\)种面具的人能看到第\(i+1\)种面具上的编号,特殊的,戴第\(k\)种面具的 ...

  6. 在C++类中使用dllimport和dllexport导出,

    在Windows平台下: 您可以使用dllimport或dllexport属性声明C ++类.这些形式意味着导入或导出整个类.以这种方式导出的类称为可导出类. 以下示例定义可导出的类.导出其所有成员函 ...

  7. 在docker镜像中加入环境变量

    原文链接 前言 reference:https://vsupalov.com/docker-build-time-env-values/ 很多时候,我们需要在docker镜像中加入环境变量,本人了解的 ...

  8. windows下安装python的包管理工具pip,scikit-learn

    打开https://pip.pypa.io/en/latest/installing.html#python-os-support 下载pip-get.py 进入python,执行pip-get.py ...

  9. python 读取mat文件

    import osimport scipy.io as sio import numpy as np #matlab文件名 matfn='/home/user/devkit/data/meta_det ...

  10. 基于 Nginx && Lua 的简易CC防护方案

    零.前言 1.CC攻击简述 CC攻击(Challenge Collapsar)是常见网站应用层攻击的一种,目的是消耗服务器资源,降低业务响应效率:极端情况会让站点无法正常提供服务: 2.本文要点 旨在 ...