AnsiblePlaybook如果你对ansible的基础完全不了解,可以看我之前的文章。剧本以YAML格式编写。如果您不了解YAML,可以参考这篇简单介绍。大部分说明这里就不贴输出了,还希望读者能够自行阅读和操作。为了方便复制操作,命令行提示符$将被省略。Ansible-playbook使用脚本ansible-playbookplaybook.yml----hosts:alltasks:-name:InstallApache。命令:yuminstall--quiet-yhttpdhttpd-devel-名称:复制配置文件。命令:>cphttpd.conf/etc/httpd/conf/httpd.conf-命令:>cphttpd-vhosts.conf/etc/httpd/conf/httpd-vhosts.conf-名称:启动Apache并将其配置为运行引导。command:servicehttpdstart-command:chkconfighttpdonCommand:紧跟在commandcommand之后的大于号(>)告诉YAML“自动将下一组缩进的行引用为一个长字符串,用空格分隔每行”.在某些情况下,它有助于提高任务的可读性。有多种方法可以使用有效的YAML语法来描述配置。上面的playbook和脚本没什么区别,它有助于顺利过渡你原来的shell脚本技能。Ad-hoc风格展示了一种更ansible风格的写法。----hosts:allbecome:yestasks:-name:InstallApache.yum:name={{item}}state=presentwith_items:-httpd-httpd-devel-name:复制配置文件。copy:src:"{{item.src}}"dest:"{{item.dest}}"owner:rootgroup:rootmode:0644with_items:-src:"httpd.conf"dest:"/etc/httpd/conf/httpd.conf"-src:"httpd-vhosts.conf"dest:"/etc/httpd/conf/httpd-vhosts.conf"-name:确保Apache在启动时启动。service:name=httpdstate=startedenabled=yes这里变成:yes相当于--sudo的作用。state=present宁可没有安装。可选状态还包括latest-保持最新、absent-卸载、started-启动等。在运行ansible-playbook时,添加--check参数可以在不修改的情况下检查服务器的状态(干-跑步)。范围可以通过--limit参数指定,比如:ansible-playbookplaybook.yml--limitwebservers下面的指令会显示哪些主机受到影响:ansible-playbookplaybook.yml--list-hosts指定一个专用用户:ansible-playbookplaybook.yml--remote-user=johndoe或作为另一个用户执行(同时在命令行上询问密码):ansible-playbookplaybook.yml--become--become-user=janedoe\--ask-become-pass其他常用参数:--inventory=PATH(-iPATH):定义一个自定义的清单文件(默认为默认的Ansible清单文件,通常位于/etc/ansible/hosts)。--verbose(-v):详细模式(显示所有输出,包括成功选项的输出)。您可以传入-vvvv以提供每分钟的详细信息。--extra-vars=VARS(-eVARS):定义要在剧本中使用的变量,格式为“key=value,key=value”。--forks=NUM(-fNUM):并发数(整数)。将此值设置为大于5的数字会增加Ansible将并发运行任务的服务器数量。--connection=TYPE(-cTYPE):将使用的连接类型(默认为ssh;您有时可能希望使用local在本地计算机上或通过远程服务器上的cron运行剧本)这里有一些完整的示例,可在DevOps实践中使用。UbuntuServer上安装solr---hosts:allvars_files;-var.ymlpre_tasks:-名称:如果需要更新apt缓存。apt:update_cache=yescache_valid_time=3600handlers:-name:restartsolrservice:name=solrstate=restartedtasks:-name:InstallJava.apt:name=openjdk-8-jdkstate=present-名称:下载Solr。get_url:url:"https://archive.apache.org/dist/lucene/solr/{{solr_version}}/solr-{{solr_version}}.tgz"dest:"{{download_dir}}/solr-{{solr_version}}.tgz"校验和:"{{solr_checksum}}"-名称:展开Solr。unarchive:src:"{{download_dir}}/solr-{{solr_version}}.tgz"dest:"{{download_dir}}"copy:nocreates:"{{download_dir}}/solr-{{solr_version}}/README.txt"-名称:运行Solr安装脚本。shell:>{{download_dir}}/solr-{{solr_version}}/bin/install_solr_service.sh{{download_dir}}/solr-{{solr_version}}.tgz-i/opt-d/var/solr-usolr-ssolr-p8983creates={{solr_dir}}/bin/solr-name:确保在启动时启动并启用solr。service:name=solrstate=startedenabled=yesExecute:ansible-playbooksolr.yml--limit-hosts如果solr正常,过一会就可以通过浏览器访问8983端口如果对solr管理界面有任何疑问,你可以在这里参考源代码。如果一切都在控制之中,那你就太慢了……总结指南就这些了,练习是关键。祝你好运。
