• 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 
  • 相关阅读:
    chrome被篡改 导航到搜狗 或者特殊页面
    安装tomcat jdk
    监控tomcat 启动
    关于如何关闭445端口
    python模拟大数据登陆
    搭建vsftpd服务
    kali syn洪水攻击实例
    HP880G3 安装RHEL6.5
    Python_列表
    Python第一个请求接口
  • 原文地址:https://www.cnblogs.com/effortsing/p/10286420.html
Copyright © 2020-2023  润新知