zoukankan      html  css  js  c++  java
  • ansible最佳实战部署nginx

    1、先看下整体目录架构
    
    [root@bogon ~]# cd /etc/ansible/
    [root@bogon ansible]# tree
    .
    ├── ansible.cfg
    ├── group_vars
    │   └── all
    ├── hosts
    ├── roles
    │   └── webservs
    │       ├── handlers
    │       │   └── main.yml
    │       ├── README.md
    │       ├── tasks
    │       │   ├── install_nginx.yaml
    │       │   └── main.yaml
    │       └── templates
    │           ├── index.html.j2
    │           └── nginx.conf.j2
    ├── site.retry
    └── site.yaml
    
    6 directories, 11 files
    
    
    2、初始化一个role
    
    [root@bogon ~]# ansible-galaxy init /etc/ansible/roles/websrvs
    
    查看已经创建的role
    [root@bogon ~]# ls /etc/ansible/roles/
    webservs
    
    把初始化后, role里面没用的目录删除,没有的目录就创建,按照第一步的目录架构来
    
    
    
    3、配置ansible.cfg
    
    [root@bogon ansible]# cat ansible.cfg 
    [defaults]
    inventory = /etc/ansible/hosts
    sudo_user=root
    remote_port=22
    host_key_checking=False
    remote_user=root
    log_path=/var/log/ansible.log
    module_name=command
    private_key_file=/root/.ssh/id_rsa
    
    
    
    4、配置变量all文件,注意:名字只能写成all,写其他的就报错
    
    
    [root@bogon group_vars]# cat all
    ---
    # vars file for /etc/ansible/roles/webservs
    worker_processes: 4
    worker_connections: 768
    max_open_files: 65506
    
    
    
    5、配置site.yaml作为执行入口文件,里面定义都对哪些roles操作
    
    [root@bogon ansible]# cat site.yaml 
    ---
    # this playbook deploy the whole application stack in this site
    - name: configuration and deploy webservers and application code
      hosts: webservers
      
      roles:
        - webservs
    
    
    
    6、配置handlers文件 ,就是触发器,比如满足条件后启动nginx
    
    [root@bogon webservs]# cat handlers/main.yml 
    ---
    # handlers file for /etc/ansible/roles/webservs
    - name: restart nginx
      service: name=nginx state=restarted
    
    
    7、配置tasks, 这是具体执行操作的yaml文件
    
    [root@bogon webservs]# cat tasks/main.yaml 
    ---
    - include: install_nginx.yaml
    
    
    [root@bogon webservs]# cat tasks/install_nginx.yaml 
    ---
    # tasks file for /etc/ansible/roles/webservs
    - name: install nginx
      command: yum install nginx -y
    
    - name: copy nginx config file
      template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf
      notify: restart nginx
    
    - name: copy index.html
      template:
        src: index.html.j2
        dest: /usr/share/nginx/www/index.html
        mode: 0644
      notify: restart nginx
    
    - name: see file
      command: ls /root
      notify: restart nginx
    
    
    
    8、配置templates。  就是准备需要的模板文件,没有就不用准备
    
    [root@bogon webservs]# cat templates/nginx.conf.j2 
    worker_processes {{ worker_processes }};
    worker_rlimit_nofile {{ max_open_files }};
    
    events {
        worker_connections {{ worker_connections }};
    }
    
    http {
        server {
            listen       80;
            root  /usr/share/nginx/www;
            index index.html index.htm default.html index.php;
            server_name loclhost;
            location / {
                try_files  / =404;
            }
        }
        
    }
    
    
    
    [root@bogon webservs]# cat templates/index.html.j2 
    <html>
      <head>
        <title>welcome to american</title>
      </head>
      <body>
      <h1>nginx, confitured by ansible</h1>
      <p>if you can see this, ansible successfully installed nginx.</p>
      
      <p>{{ ansible_hostname }}</p>
      </body>
    </html>
    
    
    
    9、执行部署
    
    [root@bogon ansible]# ls
    ansible.cfg  group_vars  hosts  roles  site.retry  site.yaml
    [root@bogon ansible]# ansible-playbook site.yaml 
  • 相关阅读:
    Java--学生类(成员变量,成员方法输出学生信息和平均成绩)
    Java--水仙花数
    Java--学生类(成员变量,成员方法直接输出学生信息)
    Java--二分法查找
    矩阵转换
    建立一个框架,设置文字的颜色,字体,大小和位置
    使用字符串函数(作业)
    java 实现监听事件(使用按钮连续改变标签的颜色和字号)(上机倒数第二次作业)
    786.第k个数
    蓝桥杯
  • 原文地址:https://www.cnblogs.com/effortsing/p/10286420.html
Copyright © 2011-2022 走看看