• ansible使用3-playbook


    playbook是ansible用于配置部署的语言。使用YAML格式。

    示例

    ---
    - hosts: webservers
      vars:
        http_port: 80
        max_clients: 200
      remote_user: root
      tasks:
      - name: ensure apache is at the latest version
        yum: pkg=httpd state=latest
      - name: write the apache config file
        template: src=/srv/httpd.j2 dest=/etc/httpd.conf
        notify:
        - restart apache
      - name: ensure apache is running
        service: name=httpd state=started
      handlers:
        - name: restart apache
          service: name=httpd state=restarted
    

    主机&用户(hosts)

    hosts可以指定一个或者多个主机或者主机组,用冒号分隔
    ---
    - hosts: webservers
      remote_user: root
    
    task中定义remote_user
    ---
    - hosts: webservers
      remote_user: root
      tasks:
        - name: test connection
          ping:
          remote_user: yourname
    
    使用sudo
    ---
    - hosts: webservers
      remote_user: yourname
      sudo: yes
    
    task中使用sudo
    ---
    - hosts: webservers
      remote_user: yourname
      tasks:
        - service: name=nginx state=started
          sudo: yes
    
    sudo到不同用户
    ---
    - hosts: webservers
      remote_user: yourname
      sudo: yes
      sudo_user: postgres
    

    任务(tasks)

    service模块使用key=value参数
    tasks:
      - name: make sure apache is running
        service: name=httpd state=running
    
    command&shell模块不使用key=value参数
    tasks:
      - name: disable selinux
        command: /sbin/setenforce 0
    
    tasks:
      - name: run this command and ignore the result
        shell: /usr/bin/somecommand || /bin/true
    
    tasks:
      - name: run this command and ignore the result
        shell: /usr/bin/somecommand
        ignore_errors: True
    
    命令行过长允许折行
    tasks:
      - name: Copy ansible inventory file to client
        copy: src=/etc/ansible/hosts dest=/etc/ansible/hosts
                owner=root group=root mode=0644
    
    使用变量
    tasks:
      - name: create a virtual host file for {{ vhost }}
        template: src=somefile.j2 dest=/etc/httpd/conf.d/{{ vhost }}
    

    处理(Handlers)

    当foo.conf文件内容改变时,触发服务重启
    - name: template configuration file
      template: src=template.j2 dest=/etc/foo.conf
      notify:
         - restart memcached
         - restart apache
    
    handlers最好用于重启服务和重启主机
    handlers:
        - name: restart memcached
          service: name=memcached state=restarted
        - name: restart apache
          service: name=apache state=restarted
    

    运行playbook

    ansible-playbook playbook.yml -f 10
    
  • 相关阅读:
    hdfs command
    开机启动
    date
    tabulate
    django前后端分离403 csrf token missing or incorrect
    设计一个程序,程序中有三个类,Triangle,Lader,Circle。
    总结,
    数据库2
    JDBC数据库1
    网络编程2
  • 原文地址:https://www.cnblogs.com/liujitao79/p/4195316.html
Copyright © 2020-2023  润新知