ansible通过playbook批量部署服务

ansible通过playbook批量部署服务
 

一、对单机和组的执行playbook配置命令

1、对单台服务器执行playbook:

在单台服务器172.20.26.198上安装nginx,启动nginx。

vim nginx.yml   #编写剧本

---

- hosts: 172.20.26.198

  remote_user: root

  tasks:

    - name: auto install nginx

      yum: name=nginx state=installed(默认状态为installed,可以忽略不写)

用-C测试剧本语法是否有问题:

ansible-playbook -C nginx.yaml

没有报错,语法没有问题,

172.20.26.198上目前没有安装nginx

在172.20.26.167上执行yml文件

ansible-playbook nginx.yml

在172.20.26.198服务器上通过yml剧本安装nginx成功。

我们也可以在yml剧本中添加启动nginx服务

vim nginx.yml

检查yml语法是否正确

ansible-playbook -C nginx.yml

Nginx 服务已启动

2、对nginx组执行playbook:对nginx组都安装nginx服务,并启动服务。

vim nginx.yml

在nginx主机组的服务器上检查nginx的安装和启动状态

3、对nginx组执行playbook:对nginx组安装nginx、redis服务,并启动服务。

---

- hosts: nginx

  remote_user: root

  tasks:

    - name: auto install nginx and redis

      yum: name=nginx,redis

    - name: start nginx and redis

      service: name={ { item }} state=started

      with_items:

        - nginx

            - redis

在nginx主机组的服务器上检查nginx、redis安装和启动状态

4、变量(playbook定义变量):安装httpd、vsftpd服务

---

- hosts: nginx

  remote_user: root

  vars:

    - app1: httpd

    - app2: vsftpd

  tasks:

    - name: auto install { { app1 }} and { { app2 }}

      yum: name={ { app1 }},{ { app2 }}

    - name: start { { app1 }} and { { app2 }}

      service: name={ { item }} state=started

      with_items:

        - "{ { app1 }}"

            - "{ { app2 }}"

我们前面已安装过nginx,由于nginx 与httpd 都绑定80端口,所以这里可以先将nginx 服务stop掉

ansible-playbook nginx.yml

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

在/etc/ansible/主目录下创建templates目录,将之前的nginx.conf 文件拷贝到templates目录下/etc/ansible/templates/

通过ansible对远程服务器进行CPU数据采集,我们172.20.26.198服务器的CPU个数是1个,172.20.26.24服务器的CPU个数是4个,

ansible nginx -m setup | grep cpu

修改nginx.conf配置

将配置文件中的worker_processes 后面的1或者2或者auto 修改为ansible采集CPU的变量名“ansible_processor_vcpus”

将nginx-1.18.0.tar上传到/usr/src目录下

vim nginx.yml

---

- hosts: nginx

  remote_user: root

  tasks:

    - name: copynginx package

      copy: src=/usr/src/nginx-1.18.0.tar.gz dest=/usr/src/

      tags: cppkg

    - name: tar-nginx

      shell: cd /usr/src/;tar -zxf nginx-1.18.0.tar.gz

    - name: installpakger

      yum: name=pcre-devel,zlib,zlib-devel,gcc,gcc-c++,openssl-devel state=installed

    - name: configure

      shell: cd /usr/src/nginx-1.18.0 && ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre

    - name: make and make install

      shell:  cd /usr/src/nginx-1.18.0 && make && make install

    - name: start nginx

      shell: /usr/local/nginx/sbin/nginx

    - name: modify nginx conf

      template: src= /etc/ansible/templates/nginx.conf dest=/usr/local/nginx/conf/

      tags: nginxconf

      notify: reload nginx

  handlers:

    - name: reload nginx

      shell: /usr/local/nginx/sbin/nginx -s reload

ansible-playbook -C nginx.yml   检查nginx.yml 语法情况

ansible-playbook nginx.yml   #执行playbook命令

要确保远程服务器对所要安装的服务所使用的端口不被占用。

测试nginx.conf 文件是否被成功修改

ansible-playbook nginx.yml

vim /usr/local/nginx/conf/nginx.conf   #查看远程服务器nginx配置文件进程数

查看远程服务器nginx 端口及进程服务

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

也可以根据ansible采集远程服务器的hostname值来设置变量

相关推荐

  1. ansible自动化部署(playbook)

    2024-02-05 07:06:08       28 阅读
  2. 使用ansible批量初始化服务器

    2024-02-05 07:06:08       38 阅读
  3. ansible剧本playbook

    2024-02-05 07:06:08       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-05 07:06:08       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-05 07:06:08       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-05 07:06:08       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-05 07:06:08       20 阅读

热门阅读

  1. ansible批量修改主机密码

    2024-02-05 07:06:08       30 阅读
  2. Leetcode 3027. Find the Number of Ways to Place People II

    2024-02-05 07:06:08       32 阅读
  3. vue2混入声明组件、交互流程

    2024-02-05 07:06:08       26 阅读
  4. vue学习——集成sass

    2024-02-05 07:06:08       30 阅读
  5. C++ Primer 第 5 版 第 5 章习题答案

    2024-02-05 07:06:08       23 阅读
  6. 网易和腾讯面试题精选---缓存面试问题和答案

    2024-02-05 07:06:08       29 阅读
  7. vue-element-admin npm install 失败解决

    2024-02-05 07:06:08       25 阅读
  8. Github使用教程

    2024-02-05 07:06:08       40 阅读