ansible cookbook

目录

打算把一些 ansible 常用的东西记录到这里

如何执行 playbook

ansible-playbook -i host.txt -u admin -k -c paramiko yml/install.yml

如何拷贝文件到服务器

- name: copy file
  copy: src=files/file.tar.gz dest=/servers/

如何删除服务器上文件

- name: delete file
  file: path=/path/file state=absent

如何解压服务器上的压缩文件

- name: tar xvf tomcat6.tar.gz
  unarchive: src=/servers/tomcat6.tar.gz dest=/servers/ copy=no

如何给服务器增加 crontab

- name: copy shell.sh
  copy: src=files/shell.sh dest=/home/jimila/
- name: add crontab shell.sh
  cron: name='shell.sh' minute='*' hour='*' month='*' job='/bin/sh /home/jimila/shell.sh'

如何使用 yum 安装软件

- name: install lsof
  yum: name=lsof state=latest

如何执行服务器上的 shell 脚本

- name: copy  shell.sh
  copy: src=files/shell.sh dest=/home/jimila/
- name:  exec shell.sh
  shell: sh /home/jimila/shell.sh >> /home/jimila/shell.log

如何改变服务器的 ulimit 值

- name: ulimit -u 20480
  pam_limits: domain=admin limit_type=- limit_item=nofile value=204800

如何增加服务器的开机执行脚本

- name: add shell start 
  service: name=nginx  pattern=/home/jimila/shell.sh enabled=yes

如何从服务器上下载文件

# 会把服务器上的 log.txt 文件下载到本地的 out 目录里面,自动用 host 分开
- name: fetch file
  fetch: src=/log/log.txt dest=out

如何从服务器下载文件时使用通配符

- shell: (cd /Logs/jd.local; find . -maxdepth 1 -type f -name "warefaq*") | cut -d'/' -f2
  register: files_to_copy

- name: fetch file
  fetch: src=/Logs/jd.local/{{ item }} dest=out
  with_items: files_to_copy.stdout_lines

如何在服务器上新建文件夹

# 新建目录
- name: make dir
  file: path=/usr/local/src/nginx/ state=directory

如何修改密码

- hosts: all
  vars:
    change_user:  your user name
    passwd: you want use passwd # 使用 openssl passwd  -1 "12321421421" 加密
  tasks:
    - name: changepasswod
      user: name={{ change_user }} password={{ passwd }} update_password=always

目录