ansible基础 -- 常用模块

一:运行shell命令(command,shell)

ansible默认使用command模块运行,但该模块不支持shell变量和管道,此时则使用shell模块运行命令

  • 在所有机器上运行ifconfig命令
ansible all -a "ifconfig"
  • 在所有机器上含有IP的行
ansible all -m shell -a "ifconfig | grep 'inet addr'"
  • 重启所有机器,每次重启2台(默认并发5)
ansible all -a "reboot" -f 2
  • 以test用户在所有机器上运行echo命令
ansible all -a "echo 'hello world'" -u test
  • 以test用户在所有机器上运行sudo命令(如果有密码用--ask-sudo-pass参数)
ansible all -a "iptables -nL" -u test --sudo [--ask-sudo-pass]

二:传输文件(copy)

  • 将本地hosts文件发送到所有主机的/home下
ansible all -m copy -a "src=/etc/hosts dest=/home"

三:更改文件权限(file)

  • 将远程主机的/home/hosts文件权限设置为600
ansible all -m file -a "dest=/home/hosts mode=600"
  • 将远程主机的/home/hosts文件用户和组设置为www
ansible all -m file -a "dest=/home/hosts owner=www group=www"
  • 在远程主机创建目录,类似mkdir -p
ansible all -m file -a "dest=/home/a/b/c owner=www group=www state=directory"
  • 删除文件或目录
ansible all -m file -a "dest=/home/a state=absent"

四:软件包管理(apt,yum)

  • 确保nginx已经安装了,但不更新
ansible all -m yum -a "name=nginx state=present"
  • 安装软件包到一个指定的版本
ansible all -m yum -a "name=nginx1.8 state=present"
  • 确保安装的软件包是最新的
ansible all -m yum -a "name=nginx state=latest"
  • 确保软件包没有安装,(卸载)
ansible all -m yum -a "name=nginx state=absent"

五:用户和用户组(user,group)

  • 创建用户组test
ansible all -m group -a "name=test gid=1000"
  • 创建用户名为foo,uid为1000,用户组为test的用户
ansible all -m user -a "name=foo uid=1000 group=test"
  • 删除用户foo
ansible all -m user -a "name=foo state=absent"

六:代码发布(git)

  • 从git仓库拉去代码
ansible all -m git -a "repo=https://github.com/xxx/xxx.git dest=/var/www/webapps version=HEAD"

七:服务管理(service)

  • 确保所有主机的nginx是启动的
ansible all -m service -a "name=nginx state=started"
  • 重启所有nginx
ansible all -m service -a "name=nginx state=restarted"
  • 关闭所有nginx
ansible all -m service -a "name=nginx state=stoped"

八:计划任务(cron)

  • 所有节点每3分钟更新时间
ansible all -m cron -a 'name="ntpdate time" minute=*/5 hour=* day=* mouth=* weekday=* job="/usr/sbin/ntpdate time.windows.com"'
  • 以www用户运行计划任务
ansible all -m  cron -a 'name="ntpdate time" minute=*/5 hour=* day=* mouth=* weekday=* job="/usr/sbin/ntpdate time.windows.com" user=www'
  • 删除计划任务
ansible all -m cron -a 'name="ntpdate time" state=absent'

九:运行脚本(script)

  • 在远程主机运行/home/ansible.sh脚本(ansible.sh文件在ansible主控机上)
ansible all -m script -a "/home/ansible.sh"

十:下载文件(get_url)

ansible all -m get_url -a "url=http://www.baidu.com/favicon.ico dest=/tmp"

十一:文件推送或拉取(synchronize)

  • delete=yes 使两边的内容一样

  • compress=yes 开启压缩,默认开启

  • --exclude=.git 忽略同步.git结尾的文件

  • mode=pull 拉取,默认为推送

  • 将主控机的/home/test.txt文件推送到远程主机的/tmp下

ansible all -m synchronize -a "src=/home/test.txt dest=/tmp compress=yes"
  • 将远程主机的/home/abc.txt拉取到主控机的root目录
ansible all -m synchronize -a "mode=pull src=/hoome/abc.txt dest=/root"

十二:收集系统信息(setup)

  • 收集主机所有信息
ansible all -m setup
  • 收集主机所有信息,并根据主机名存到文件中
ansible all -m setup --tree /tmp/facts
  • 收集内存相关的信息
ansible all -m setup -a "filter=ansible_*_mb"
  • 收集网卡相关的信息
ansible all -m setup -a "filter=ansible_eth[0-2]"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容

  • ###### Ansible总结 ##### 运维工作: 系统安装(物理机、虚拟机)-->程序包安装、配置、服务启...
    二郎5阅读 2,021评论 0 4
  • 作为背锅侠运维工作的基本流程 运维工具的分类 : ansible的模块化: ansible密钥登陆 ansible...
    二郎5阅读 4,149评论 0 10
  • 一.ansible (1) ansible: ansible是一款新出现的自动化运维系统,基于python开发并集...
    楠人帮阅读 1,937评论 0 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,637评论 18 139
  • 本文主要内容均收集于网络上的博文资料,仅以此文作为学习总结。BTW,目前Ansible对python3的支持还不是...
    qiuyi943阅读 18,217评论 1 15