闲来无事,写一下ansible相关的小知识吧。
1.ansible的 Ad-Hoc什么是Ad-Hoc呢,很简单就是临时命令,就是相对于playbook直接可以执行的,简单举例。ansible -i /tmp/host_test.txt -m command -a "hostname" -f 2ansible -i /tmp/test.txt -f5 -m ping这样就是最简单可以直接执行的,至于-i,-m,-f,-v,-s,-u等等这些参数指令,简单说几个,其他的自行查去吧。-i --inventory=PATH 一般指定hosts位置,默认是在/etc/ansible/hosts-m 指定使用的模块-f 线程并发数-v 输出更详细,-vvv 输出执行过程-s --sudo执行sudo命令-u --user 指定用户执行这应该是很清楚了--------(懒得写了)2.ansible的playbook首先明确playbook采用yaml语法编写,数据结构通过缩进表示,连续的项目通过“-”来表示,key/value通过“:”来分隔,文件开头“---”,必须包含task,name最简单shell可以转化为playbook,简单举个例子:#!/bin/bashyum install -y httpd httpd-develcp /tmp/httpd.conf /etc/httpd/conf/httpd.confservice httpd restartchkconfig httpd on####################################- hosts: allsudo: yestasks:
- name: "安装apacher"yum: name={{ item }} state=presentwith_items:
- httpd
- httpd-devel
- name: "复制配置文件"copy: src: "{{ item.src }}"dest: "{{ item.dest }}"owner: rootgroup: rootmode: 0644with_items:
- {src: "/tmp/httpd.conf"dest: "/etc/httpd/conf/httpd.conf"}-{src: "/tmp/httpd-devel.conf"dest: "/etc/httpd/conf/httpd-devle.conf"}}-name: "检查开机自启"service: name=httpd state=present enabled=yes
#############################################
可以看到已经转化为标准的yaml的ansible-playbook,我们用到了几个模块。
精彩评论