关于ansible的随笔

闲来无事,写一下ansible相关的小知识吧。
1.ansible的 Ad-Hoc
什么是Ad-Hoc呢,很简单就是临时命令,就是相对于playbook直接可以执行的,简单举例。
ansible -i /tmp/host_test.txt -m command -a "hostname" -f 2
ansible -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/bash
yum install -y httpd httpd-devel
cp /tmp/httpd.conf /etc/httpd/conf/httpd.conf
service httpd restart
chkconfig httpd on
####################################


  • hosts: all
    sudo: yes
    tasks:
    • name: "安装apacher"
      yum: name={{ item }} state=present
      with_items:
  • httpd
  • httpd-devel
    • name: "复制配置文件"
      copy:
      src: "{{ item.src }}"
      dest: "{{ item.dest }}"
      owner: root
      group: root
      mode: 0644
      with_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,我们用到了几个模块。

上一篇:Atop监控部署 playbook


下一篇:ansible 自动化运维(2)