登录 | 立即注册 切换到窄版
查看: 2469|回复: 0

Ansible学习测试收集内容

[复制链接]

8

主题

19

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2016-9-13 11:07:19 | 显示全部楼层 |阅读模式
1ansible命令参数:
Usage:ansible <host-pattern> [options]
Options:
  -mMODULE_NAME, --module-name=MODULE_NAME  #要执行的模块,默认为command
  -aMODULE_ARGS, --args=MODULE_ARGS           # 模块的参数
  -uREMOTE_USER, --user=REMOTE_USER            # ssh连接的用户名,默认用rootansible.cfg中可以配置
  -k,--ask-pass                                                                         # 提示输入ssh登录密码,当使用密码验证登录的时候用
  -s,--sudo                                                                             #sudo运行nopasswd
  -USUDO_USER, --sudo-user=SUDO_USER           # sudo到哪个用户,默认为root
  -K,--ask-sudo-pass                                                                    # 提示输入sudo密码,当不是NOPASSWD模式时使用
  -BSECONDS, --background=SECONDS                 run asynchronously, failing after X seconds(default=N/A)
  -PPOLL_INTERVAL, --poll=POLL_INTERVAL           set the poll interval if using -B (default=15)
  -C,--check                                                                         # 只是测试一下会改变什么内容,不会真正去执行
  -cCONNECTION                                                                          #连接类型(default=smart)
  -fFORKS, --forks=FORKS                                               # fork多少个进程并发处理,默认5
  -iINVENTORY, --inventory-file=INVENTORY             # 指定hosts文件路径,默认default=/etc/ansible/hosts
  -lSUBSET, --limit=SUBSET                    # 指定一个pattern,对<host_pattern>已经匹配的主机中再过滤一次
--list-hosts                           # 只打印有哪些主机会执行这个playbook文件,不是实际执行该playbook
  -MMODULE_PATH, --module-path=MODULE_PATH   # 要执行的模块的路径,默认为/usr/share/ansible/
  -o,--one-line                                                      # 压缩输出,摘要输出
--private-key=PRIVATE_KEY_FILE                    # 私钥路径
  -TTIMEOUT, --timeout=TIMEOUT                   # ssh连接超时时间,默认10
  -tTREE, --tree=TREE          # 日志输出到该目录,日志文件名会以主机名命名
  -v,--verbose         verbose mode (-vvv formore, -vvvv to enable connection debugging)
# ansible-playbook http.yml--syntax-check     #检查playbook的语法
2体验命令操作
1用户类操作(密钥登录)
$ ansible webtest -m group -a"name=testgroup state=present" -s            #创建组      
$ ansible webtest -m user -a"name=utest groups=testgroup state=present" -s                # 创建用户
$ ansible lmhj201 -i ./hosts -m user -a 'name=utest group=testgroup  shell=/bin/bash home=/home/utest append=yes'-s
$ ansible webtest -m user -a "name=uteststate=absent remove=yes" -s    # 删除用户
# 本地生产authorized_key
# - authorized_key: user=ansiblekey="{{ lookup('file', '/etc/ansible/roles/files/ansible.pub') }}"
# ansible all -m shell -a "sudo echo'newpassword'|passwd --stdin user" -u ansibleuser   #密码修改
2服务安装管理
$ ansible local -a 'sudo apt-get -y installnginx'
$ ansible local -a "sudo/etc/init.d/nginx stop"
$ ansible local -a "sudo/etc/init.d/nginx start"
$ ansible webtest -m service -a "name=nginxstate=running" -s
# ansible all -m service -a "name=sshstate=running" -k     # debian系统
# ansible dydg101 -m service -a"name=ssh state=restarted" -k
3其他测试过的
$ ansible datacenter -a 'ls -l /root' -s
$ ansible datacenter -a 'mv/root/old.tar.gz /root/new.tar.gz' –s
$ ansible all -i ./hosts -m file -a 'path=/home/utest/serverstate=directory' -s  # 创建目录
$ ansible lmhj201 -i ./hosts -m file -a 'path=/home/utest owner=utest group=testgroup' -s# 赋权限,但不能-R
$ ansible lmhj201 -i ./hosts -m file -a 'path=/home/utest owner=utest group=testgroup recurse=yes' s # chown -R等同  
$ ansible datacenter -m file -a'path=/root/new.tar.gz' -s    //查看文件属性
$ ansible datacenter -a 'rm -rf/root/directory' -s    //删除目录
# ansible all -m raw -a 'rm -rf /tmp/sa*'-k         # 删除匹配目录或文件
$ ansible all -mcommand -a "/bin/echo hello" --ask-pass
$ ansible all -m ping --ask-pass -u root
$ ansible all -m script -a "/root/hequan/shell/t.sh"-k
# 拷贝文件到监控服务器上
$ ansible all -m copy-a "src=/root/hequan/shell/t.sh dest=/tmp/ mode=755 owner=rootgroup=root" -k -u root
$ ansible all -m file -a"dest=/tmp/t.sh mode=755 owner=root group=root" -k -u root
$ ansible all -i /etc/ansible/serverlist -mshell -a "/tmp/t.sh" -k -u root
$ ansible webtest -m get_url -a "url=http://192.168.0.8/sa/ sh.tar.gzdest=/tmp/" -s
$ ansible webtest -a "sudo tar zxvf/tmp/ sh.tar.gz -C /tmp" -s  //不指定解压目录,会解压到/home/ansible目录下,及执行ansible命令的用户目录下
$ ansible webtest -a "sudo/tmp/lansa_sh/t.sh" -s
# ansible all -m setup -a"filter=ansible_distribution*" -k    # 查看操作系统信息
$ ansible local -m setup -a"filter=ansible_os_family" -s    # 查看操作系统信息
4playbookregister使用
---
- hosts: all
user: ansible
sudo:yes
sudo_user: root
tasks:
    -shell: df
    register: res
    -debug: var=res.stdout_lines
    -shell: ls -l /home |grep -w lmhj |awk '{print $3}'
    register: res
    -debug: var=res.stdout_lines
- shell: chown-R {{ res.stdout }}:jjgame /home/lmhj_back
5fetch模块从远程目标主机下载多个文件到ansible控制端服务器(目录不可以)
  tasks:
    -shell: ls /home/zhiban1/201503
     register: res
    -debug: var=res.stdout_lines
    -name: Fetch log file
     fetch: src=/home/zhiban1/201503/{{ item }} dest=/tmp/backfile/
     with_items:  res.stdout_lines
  ###说明:tch:src=/home/zhiban1/201503/{{ item }} dest=/tmp/backfile/ flat=yes 加上flat=yes后所有主机的(不同名字的)文件都可以集中放置在/tmp/backfile目录下。flat=no是默认,这样就分别对各个主机存放,目录:
/tmp/backfile/IP(主机名)//home/zhiban1/201503/文件。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|Ansible中国社区 ( 京ICP备13038968号

GMT+8, 2019-3-23 18:44 , Processed in 0.067226 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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