设为首页 收藏本站
查看: 809|回复: 0

[经验分享] ansible 学习笔记(上)

[复制链接]

尚未签到

发表于 2018-7-29 13:49:44 | 显示全部楼层 |阅读模式
YAML的语法和其他高阶语言类似,并且可以简单表达清单、散列表、标量等数据结构。  
其结构(structure)通过空格来展示,序列(Sequence)里的项用“-”来代表,Map里的键值对用“:”分隔。
  

  
Playbook:
  
Playbook的核心元素:
  
    Hosts:主机
  
    Tasks:任务
  
    variables:
  
    Templates:包含了模板的文本文件;
  
    Handlers:由特定条件出发任务;
  
    Roles:
  

  
    playbook的基础组件
  
        Hosts:运行指定任务的目标主机;
  
        remoute_user:在远程主机上执行任务的用户;
  
            sudu_user:
  
        tasks:任务列表
  
            模块,模块参数;
  
            格式:
  
                (1)action:module arguments
  
                (2)module:arguments
  
        handlers:
  
            任务,在特定条件下触发;
  
            接收到其他任务的通知时被触发;
  
        variables:
  
            (1)facts:可直接调用;
  
            (2)ansible-playbook命令行中的自定义变量;
  
                -e VARS,--extra-vars=VARS
  
            (3)通过role传递变量;
  
            (4)Host Inventory
  
                (1)向不同的主机传递不同的变量;
  
                    ip/hostname varaiable=value var2=value2
  
                (2)向组中主机传递相同的变量
  
                    [groupname:vars]
  
                    variable=value
  
            invertory参数:
  
                用于定义ansible远程连接目标主机时的参数,而非传递给playbook的变量;
  
                    ansible_ssh_host
  
                    ansible_ssh_port
  
                    ansible_ssh_user
  
                    ansible_ssh_pass
  
                    ansible_sudo_pass
  
                ....
  
        **注意:shell和command模块后直接跟命令即可**
  
        **某任务的状态在运行后为changed时,可通过“notify”通知给相应的handlers;**
  
        **任务可以通过“tags”打标签,而后可在ansible-playbook命令上使用-t指定进行调用;**
  
    playbook的使用方法:
  
        ansible-playbook在执行命令时,第一个任务执行完成后执行第二个任务,第二个执行完成后,执行第三个任务;
  
        ansible-playbook
  
            --list-host      //显示执行的主机列表;
  
            --check          //在目标主机进行检测可能会发生改变,但并不执行;
  
            -t tags          //指明任务
  
            ansible-palybook -t instconf web.yml  //进行标签为instconf的项目;
  
        playbook示例1:编写sample.yaml
  
            - hosts:            remote_user:root
  
            tasks:
  
                - name: create a user user3
  
                  user: name=user3 system=true uid=307
  
                - name: creare a user user4
  
                  user: name=user4 system=true uid=308
  
        playbook示例2:编写web.yml
  
            - hosts: websrvs              remote_user: root
  
              tasks:
  
              - name: install httpd package                yum: name=httpd state=present
  
              - name: install configure file
  
                copy: src=files/httpd.conf dest=/etc/httpd/conf/    //src为相对路径
  
                tags: instconf
  
                notify: restart httpd
  
              - name: start httpd.service
  
                serivce: name=httpd state=started
  
              -name: execute ss command
  
                shell: ss -tnl | grep 8080
  
            - handlers:
  
              - name: restart httpd
  
                service: name=httpd state=restarted

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-543127-1-1.html 上篇帖子: 很直接了当的ansible指导-fetch模块 获取远程主机的文件 flat=yes参数的使用 下篇帖子: Ansible批量部署zabbix-agent
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表