远程安装系统

远程安装系统,第1张

ansible-playbook远程安装nginx

Ansible用于大批量管理虚拟服务器,以下记录使用ansible远程控制部署nginx服务的全过程。


实验自然环境:

  • ansibleserver:centos6.6192.168.38.152源代码编译器已经安装了nginx服务项目。请参考这里的整个安装过程。

  • 虚拟服务器:CentOS6.6192.168.38.155(主机名:web155.com)部署nginx。



    整个测试过程:

    思路:先在152设备上编译程序,安装nginx,打包,然后用ansible发送到其他网络服务器上。


  • Cd/etc/ansible转到ansible配置文件目录。

  • 2。mkdirnginx_install建立一个nginx_install的目录,方便管理。

    3.cdnginx_install

    4.mkdir-proles/{common,install}/{handlers,files,meta,tasks,templates,vars}

    显示在/etc/ansible/nginx_install目录下建立了一个roles目录,roles目录下有两个字符。常见的是提前准备的实际 *** 作,安装的是安装nginx的实际 *** 作。每个字符下面有几个目录。下面的处理程序是文件更改时要执行的实际 *** 作。一般情况下,当设备档案发生变化时,必须重新启动服务项目。Files是关键的设备档案,templates一般存储一些设备档案,启动脚本等模板文件,vars是定义的自变量。


    5.要安装nginx服务项目,必须先安装依赖包:

    CD/etc/ansible/nginx_install/roles

    在通用目录的任务中定义main.yml脚本和安装依赖包。

    维姆。/common/tasks/main.yml//包含以下内容:

    - name: install initializtion require software   yum: name={{ item }} state=installed   with_items:     - zlib-devel     - pcre-devel     - openssl-devel


    6.在/usr/local/nginx目录的nginx包中安装之前的源代码编译器:

    cd/usr/local/

    tarzcvfnginx.tar.gznginx/

    7.在/etc/ansible/nginx_install/roles/install中,准备好安装nginx程序流的所有文件。

    CD/etc/ansible/nginx_install/roles/install

    CP/usr/local/nginx.tar.gzfiles/#打包的nginx

    CP/usr/local/nginx/conf/nginx.conf模板的配备文件/#nginx

    CP/etc/init.d/nginxtemplates/#nginx的启动脚本在之前安装的时候还得自己写。

    8.然后,必须在install/vars目录中编写一个main.yml脚本来记录一些独立变量:

    vim/etc/ansible/nginx_install/roles/install/vars/main.yml

    ngx_user:www#nginx的客户,根据nginx.conf文件的定义,因为新设备上很可能没有nginx客户。

    ngx_basedir:/usr/local/nginx#nginx的安装路径


    9.然后,编写/etc/ansible/nginx_install/roles/install/tasks/copy.yml。

    - name: Copy Nginx Software   copy: src=nginx.tar.gz  dest=/tmp/nginx.tar.gz owner=root group=root - name: Uncompression Nginx Software   shell: tar zxf /tmp/nginx.tar.gz -C /usr/local - name: Copy Nginx Start Script   template: src=nginx dest=/etc/init.d/nginx owner=root group=root mode=0755 - name: Copy Nginx Config   template: src=nginx.conf dest={{ nginx_basedir }}/conf/ owner=root group=root mode=0644

    实现这个copy.yml文件,将本地ansible网络服务器打包的nginx包复制到远程控件。复制控制模块的默认目录路径是文件。因此,打包的nginx.tar.gz必须复制到files目录中。

    复制nginx.tar.gz包后,copy.yml需要解压缩工具,复制启动文件,然后复制配置文件。


    10.定义copy.yml文件后,必须定义安装脚本:

    vim/etc/ansible/nginx_install/roles/install/tasks/install.yml

    - name: Create Nginx User   user: name={{ nginx_user }} state=present createhome=no shell=/sbin/nologin - name: Start Nginx Service   service: name=nginx state=started - name: Add Boot Start Nginx Service   shell: chkconfig --level 345 nginx on - name: Delete Nginx compression files   shell: rm -rf /tmp/nginx.tar.gz


    在使用install.yml的脚本安装nginx的情况下,首先建立nginx的客户nginx_user,在vars目录中定义自变量。

    然后,nginx被添加到服务项并启动。

    然后,345级启动全部开启。

    最后,删除安装包。


    11.今天,两个关键。yml脚本已经定义好了,但是nginx的远程控制安装无法完成。现在还必须在roles/install/tasks/目录下写一个main.yml的通道文件,统一管理copy.yml和install.yml的文件。

    vim/etc/ansible/nginx_install/roles/install/tasks/main.yml//包含以下内容:

    - include: copy.yml - include: install.yml

    包括copy和install2文件。


    现在,角色下的两个角色common和install已经准备好了。


    然而,要完成nginx的ansible-playbook,需要一个通用的通道文件。

    vim/etc/ansible/nginx__install/install.yml//包含以下内容:

    ---  - hosts: web155.com   remote_user: root   gather_facts: True   roles:     - common     - install


    看这个install.yml文件的结构,hosts是远程控制的主发电机组的名字,最重要的是定义角色控制模块。执行ansible-playbook时,会在角色中搜索common和install,然后在common和install的角色中,分别搜索它们的main.yml通道文件。根据main.yml文件,可以找到copy.yml和install.yml文件。


    实现ansible-playbook/etc/ansible/nginx_install/install.yml。

    然后在另一个设备192.168.38.155的检测器中:

    Psaux|grepnginx#检查nginx服务中的一切是否已经正常启动,如果是,一切都已经正常安装。


    以上是使用ansible远程控制部署nginx的实用思路。



    我进行测试的设备上的/etc/ansible/nginx_install/目录的结构:

    [root@master nginx_install]# pwd /etc/ansible/nginx_install [root@master nginx_install]# tree . ├── install.yml └── roles     ├── common     │   ├── files     │   ├── handlers     │   ├── meta     │   ├── tasks     │   │   └── main.yml     │   ├── templates     │   └── vars     ├── delete     │   ├── files     │   ├── handlers     │   ├── meta     │   ├── tasks     │   ├── templates     │   └── vars     └── install         ├── files         │   ├── nginx-1.6.2.tar.gz         │   └── nginx.tar.gz         ├── handlers         ├── meta         ├── tasks         │   ├── copy.yml         │   ├── install.yml         │   └── main.yml         ├── templates         │   ├── nginx         │   └── nginx.conf         └── vars             └── main.yml



    欢迎分享,转载请注明来源:内存溢出

    原文地址: http://outofmemory.cn/zz/777853.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存