Ansible playbook批量部署

Ansible playbook批量部署

要求:
通过playbook批量源码部署nginx,并实现配置文件替换,启动服务

环境:
ansible-server:192.168.146.131
ansible-client: 192.168.146.132
ansible-client: 192.168.146.134

1、定义hosts主机列表
在这里插入图片描述
2、创建并配置ansible-book剧本

按照此次案例剧本master-ansible内容相关路径如下:			#提前准备好把源码包与源码配置文件放置以下路径
nginx源码包:/root/nginx-1.18.0.tar.gz			
所替换的nginx配置文件:/data/nginx/nginx.conf

创建ansiblebook剧本,以" .yaml "为后缀

- hosts: nginx
  remote_user: root

  tasks:
    - name: 复制
      copy: src=/root/nginx-1.18.0.tar.gz dest=/usr/local/src/

    - name: 下载依赖包
      shell: yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

    - name: 解压
      shell: tar -xf /usr/local/src/nginx-1.18.0.tar.gz -C /usr/local/

    - name: 编译
      shell: cd /usr/local/nginx-1.18.0;./configure --prefix=/usr/local/nginx

    - name: 安装
      shell: cd /usr/local/nginx-1.18.0;make && make install
      
    - name: 替换配置文件
      copy: src=/data/nginx/nginx.conf dest=/usr/local/nginx/conf/nginx.conf

    - name: 启动服务
      shell: /usr/local/nginx/sbin/nginx

    - name: 查看进程
      shell: netstat -nptl | grep "nginx"
      
##Ansible-playbook剧本格式一定要严格,行数对齐,空格就全空格,tab就全tab,此处建议空格
 #像是此处“编译”中的命令如果拆成两句来完成就会执行失败,所以遇到需要进入到某个特定的路径才能执行的命令最好一条命令完成

在这里插入图片描述
测试脚本:ansible-playbook -C nginx.yaml
开始脚本:ansible-playbook nginx.yaml

在这里插入图片描述
示例二:
假设发放同一个剧本,但主机名、地址或端口又分别以各自的实际命名为标准,则

vim /etc/ansible/hosts
[nginx]
192.168.146.132 ansible_ssh_host=192.168.146.132 ansible_ssh_port=80
192.168.146.134 ansible_ssh_host=192.168.146.134 ansible_ssh_port=8080

版权声明:本文为qq_45373609原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。