ansible剧本批量安装nginx

前置条件:

                (1)秘钥远程登录服务器实现免密登录

                (2)管理服务器安装ansible

                (3)Ansible主机上定义hosts文件和准备安装包

前置(1)部署

需要提前部署好秘钥远程登录服务器实现免密登录

想要打通的过去的这台主机:

1)ssh-keygen -t dsa建立私钥和公钥(一直回车)

2)创建ssh目录:mkdir /ssh 在cd .ssh

3)ssh-copy-id -i /root/.ssh/id_dsa.pub root@192.168.174.138

4)检查一下是否打通ssh 192.168.174.138

需要被打通的主机:

1)需要在第3把打通过去之前新建文件:mkdir .ssh

2)新建文件:touch authorized_keys

3)附加权限:chmod 600 authorized_keys

4)建立私钥公钥:ssh-keygen -t dsa

 前置(2)部署

管理端服务器 ---使用ansible之前先打通秘钥

第一个历程:安装部署软件

yum install -y epel-release ---安装epel源

yum install -y ansible ---需要依赖epel的yum源

第二个历程:不需要编写配置文件的,但是需要编写主机清单文件

/etc/ansible/ansible.cfg ---ansible服务配置文件(一般都是不需要配置的)

/etc/ansible/hosts ---主机清单文件(主要配置文件)

/etc/ansible/roles ---角色目录

进入到vim /etc/ansible/hosts里面编写如下信息:

#定义可以管理的主机信息

192.168.174.138

第三个历程:测试是否可以管理多个主机

利用ansible测试需要管理的主机:ansible 192.168.174.139 也可以使用ansible all-a "hostname" (其中-a的意思就是active执行什么命令动作)

前置(3)部署

在Ansible主机上定义hosts文件和准备安装包,目录结构如下:

 

hosts里面创建一台被管理的客户机:(这里就按照一台ip地址为:192.168.174.138为例)

#定义可以管理的主机信息
192.168.174.138 ansible_ssh_user=root ansible_ssh_pass=123456

首先我们配置我们剧本install.yml:

- hosts: 192.168.174.138
  tasks:
    - name: 安装依赖包
      yum: name=zlib,zlib-devel,openssl,openssl-devel,pcre,pcre-devel,gcc state=present
    - name: 传输并解安装包
      unarchive: src=nginx-1.12.0.tar.gz dest=/usr/local/ copy=yes
    - name: 编译安装
      shell: cd /usr/local/nginx-1.12.0 && ./configure && make && make install
    - name: 配置自启动文件
      copy: src=nginx.service dest=/lib/systemd/system/
    - name: 添加自启动
      service: name=nginx state=started enabled=no

说明:

hosts:指定要安装的主机        ---在上面hosts已经创建

tasks:安装详细步骤(示例Nginx采用最小化安装)

nginx.service:添加systemctl管理服务

[UNIT]
Deion=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

执行安装:

1.测试主机连通性:

ansible 192.168.174.138 -m ping

2.执行install.yml

ansible-playbook install.yml --syntax-check

语法检查无报错

去管理客户机上查看是否安装成功

ansible 192.168.174.138 -m shell -a "ps -ef | grep nginx && netstat -ntlp | grep 80"

检查目标机器上的nginx进程和80端口正常

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ELIAUK``

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值