ansible相关模块

yum

  • rpm 和yum 的区别

    rpm:全称redhat package manager (红帽包管理器) 不能解决包之间的依赖关系

    yum:可以解决依赖关系

  • yum 源配置

  • [root@localhost ~]# cat /etc/yum.repos.d/epel.repo
    [epel]
    name=Extra Packages for Enterprise Linux 7 - $basearch #名字
    baseurl=http://mirrors.aliyun.com/epel/7/$basearch #rpm源的地址,可以写http,https,ftp,Samba,file:
    failovermethod=priority
    enabled=1 # 是否开启,1代表开启,0表示关闭
    gpgcheck=0 #是否校验签名,1代表校验,0表示不校验
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
  • yum 安装包组

    yum grouplist # 查看包组信息
    yum groupinstall 包组名 # 安装包组
     #ansible-doc -s yum     查看yum模块的参数信息
    
    disablerepo #禁用源
    enablerepo #启用源
    name #包名
    state install (`present' or `installed', `latest'), or remove (`absent' or `removed')
    ansible web -m yum -a 'name=wget' # 安装wget
    rpm -q wget #查询已经安装的软件信息
    [root@localhost ~]# ansible web -m copy -a 'src=/etc/yum.repos.d/epel.repo dest=/etc/yum.repos.d/epel.repo'
    #将管控机上的epel源复制到被管控机上
    ansible web -m yum -a 'name=python2-pip' # 安装python2-pip
    ansible web -m yum -a 'name=wget state=absent' # 卸载软件包
    ansible web -m yum -a 'name="@Development Tools"' # 安装包组

pip

pip install 安装包
pip freeze > a.txt 将python的环境打包到文件中
pip install -r a.txt 安装文件中的包
pip list 查看所有的以安装成功的包
ansible web -m pip -a 'name=flask' # 安装flask模块

service

ps -ef|grep nginx #查看进程
ss -tnlp # 查看端口信息
systemctl start nginx # centos7启动nginx
service nginx start # centos6启动nginx
systemctl enable nginx # centos7 开机自启动
chkconfig nginx on # centos6开机自启动
ansible web -m service -a 'name=nginx state=started' # 启动nginx
ansible web -m service -a 'name=nginx state=stopped' # 关闭nginx
ansible web -m service -a 'name=nginx state=started enabled=yes' # 设置开机自启动

cron计划任务

* * * * * job
分 时 日 月 周 任务
0 */2 * * * job 每隔两个小时
0 12,13 * * * job 12点和13点
0 12-17 * * * job 12点到17点
0 12-17/2 * * 1,3,6,0 周1,周3,周6,周7 12点到17点每隔两个小时
[root@localhost ~]# cat /etc/crontab
crontab -e # 编辑计划任务
crontab -l # 查看计划任务
crontab -r # 删除计划任务
[root@localhost ~]# ansible-doc -s cron    #查看cron模块的参数
day #天
disabled #禁用
hour #小时
job #任务
minute #分钟
month #月
name #任务名字
weekday #周
state #present or absent
ansible db -m cron -a 'minute=26 job="touch /tmp/xzmly.txt" name=touchfile' # 新建一个计划任务,每小时的第26分钟在被管控机组db的/tmp下创建xzmly.txt文件
ansible db -m cron -a 'name=touchfile state=absent' # 删除一个计划任务
ansible db -m cron -a 'minute=26 job="touch /tmp/xzmly.txt" name=touchfile disabled=yes' # 禁用计划任务,以#表示禁用 [root@localhost ~]# crontab -l
#Ansible: touchfile
#56 * * * * touch /tmp/fengchong.txt

用户相关: user

用户:
管理员 root 0
普通用户
系统用户 不能登录 1-999 centos7 1-499 centos6
登录用户 可以登录 1000-65535 centos7 500-65535 centos6
用户组:
管理员组 root 0
系统用户组 1-999 centos7 1-499 centos6
登录用户组 1000-65535 centos7 500-65535 centos6 [root@localhost ~]# useradd -h #查看useradd的参数
-d #指定用户的家目录
-g #指定用户的组
-G #执行用户的附加组
-s #指定登录后使用的shell
-r #创建一个系统用户
useradd -r wusir #创建系统用户, 从999倒序
useradd -s /sbin/nologin alexsb #创建的是普通用户,从1000开始升序
useradd -d /opt/alexsb2 alexsb2 #创建用户时指定用户的家目录
useradd -u 3000 alexsb6 # 创建用户并指定用户的uid
userdel alex #删除用户
userdel -r alexsb2 #删除用户并删除用户的家目录 groupadd yuchao #创建用户组
groupdel yuchao #删除用户组
#ansible中的user模块参数
group #组
groups #附加组
home #家目录
name #用户名
password #密码
remove #当remove=yes时,删除用户且删除用户的家目录
shell #用户登录后使用的shell
system #创建一个系统用户
uid #用来指定用户的id
state #状态
ansible db -m user -a 'name=wulaoshi uid=4000 home=/opt/wulaoshi groups=root shell=/sbin/nologin' #创建一个用户,并指定用户的id,用户的家目录,用户的附加组,用户的shell
ansible db -m user -a 'name=wulaoshi state=absent' #删除用户但是不删除用户的家目录
ansible db -m user -a 'name=wulaoshi3 state=absent remove=yes' # 删除用户并删除用户的家目录

用户相关: group

[root@localhost ~]# ansible-doc -s group
#查看模块group的参数信息
gid #组的id
name #组名
system #系统组
state
ansible db -m group -a 'name=wulaoshi system=yes' #创建系统组
ansible db -m group -a 'name=wulaoshi state=absent' # 删除组

小练习:以下操作均在主机列表web上进行

1、创建一个用户组alex10

ansible web -m group -a 'name=alex10'

2、创建一个用户wusir10

ansible web -m user -a 'name=wusir10'

3、把/etc/fstab文件复制到远程主机上/tmp/f

ansible web -m copy -a 'src=/etc/fstab dest=/tmp/f'

4、安装nginx,并启动,设置开机自启动

ansible web -m yum -a 'name=nginx'

ansible web -m service -a 'name=nginx enabled=yes'

ansible 剧本

yaml介绍:

是一个编程语言
文件后缀名 yaml yml
数据对应格式:
字典: key: value
列表: [] -

ansible-playbook命令格式

执行顺序: 从上往下

特性:幂等性 不管执行多少遍,结果都是一样的

#命令格式:ansible-playbook [options] playbook.yml [playbook2 ...]
#参数:
-C, --check # 检查,白跑,干跑
-f FORKS, --forks=FORKS #用来做并发
--list-hosts # 列出主机列表
--syntax-check # 语法检查
-e #指定参数

简单用法

#vi p1.yml   写入如下内容:

- hosts: web         #主机列表
tasks: #任务
- name: creategroup #任务名称
group: name=alex10 #模块名:参数
- name: cretaeuser #任务名称
user: name=wusir10 #模块名:参数 #检查p1.yml语法的正确性
[root@localhost ~]# ansible-playbook --syntax-check p1.yml playbook: p1.yml
#执行
[root@localhost ~]# ansible-playbook p1.yml
hosts: gb
tasks:
- name: 第san个姑娘
dong: 第san个姑娘

传参

- hosts: web
tasks:
- name: create{{ user }}
user: name={{ user}}

第一种方式

ansible-playbook -e 'user=alexsb10' p2.yml

第二种方式

[db]
192.168.107.132 user=alexsb11
192.168.107.133 user=alexsb12

第三种方式

[db:vars] #表示组的参数
user=alexsb13

第四种方式

- hosts: db
vars:
- user: alexsb14
tasks:
- name: create{{ user }}
user: name={{ user}}

第五种传参方式

- hosts: db
tasks:
- name: sum
shell: echo 7+8|bc
register: user
- name: createuser
user: name={{user.stdout}}

传参方式的优先级

-e > playbook vars > hosts文件

ansible模块之yum、pip、service、corn、user、group的更多相关文章

  1. Ansible笔记(7)---常用模块之系统类模块(cron、service)

    一.cron模块 1.1作用: cron 模块可以帮助我们管理远程主机中的计划任务,功能相当于 crontab 命令. 在了解cron模块的参数之前,先写出一些计划任务的示例: # 示例1,每天的1点 ...

  2. 4.1、Ansible模块

    ansible-doc -l    列出所有模块 ansible-doc 模块名    查看模块的help说明 ansible-doc -s  module_name:获取指定模块的使用信息 ***文 ...

  3. ansible模块补充

    1.fetch模块, 将远程机器上的文件拉取到本地,以ip或者主机名生成目录,并保留原来的目录结构,与copy模块的功能相反. 主要参数 : dest  --  目标地址 src -- 源地址 例子 ...

  4. ansible模块的介绍与使用

    ansible-doc的使用 1.ansible-doc -h可以看见ansible-doc的所有参数 2.ansible-doc 命令格式:ansible-doc [-l|-F|-s] [optio ...

  5. Ansible 模块命令介绍

    copy模块: 目的:把主控端/root目录下的a.sh文件拷贝到到指定节点上 命令:ansible 10.1.1.113 -m copy -a 'src=/root/a.sh dest=/tmp/' ...

  6. ansible模块

    ansible模块: 模块(Modules),类似于 "任务插件"("task plugins")或"库插件"("library ...

  7. ansible模块学习

    ansible的功能: 模块化任务,调用特定的模块,完成特定的任务 基于python语言实现,由paramiko.pyyaml和jinja2三个模块构建 部署简单,agentless,ansible基 ...

  8. ansible模块详解

    [简单介绍] Ansible是一种agentless(基于ssh),可实现批量配置.命令执行和控制,基于Python实现的自动化运维工具. 有以下两个特性: 模块化:通过调用相关模块,完成指定任务,且 ...

  9. ansible模块及语法

    常用模块详解 模块说明及示例: 1.ping模块ping模块 主要用于判断远程客户端是否在线,用于ping本身服务器,返回值是changed.ping示例 ansible clu -m ping 2. ...

随机推荐

  1. jquery 动态控制显隐

    1.第1种方法 ,给元素设置style属性 $("#hidediv").css("display", "block"); 2.第2种方法 , ...

  2. jQuery常用方法(二)-事件

    ready(fn); $(document).ready()注意在body中没有onload事件,否则该函数不能执行.在每个页面中可以 有很多个函数被加载执行,按照fn的顺序来执行. bind( ty ...

  3. wordpress安装主题、插件需要FTP用户名密码

    修改主目录wordpress下的wp-config.php文件,在最结尾加上 define("FS_METHOD", "direct"); define(&qu ...

  4. docker 更新后出现 error during connect

    docker更新后出现 error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.39/containers/json: o ...

  5. ARP攻击原理简析及防御措施

    0x1  简介 网络欺骗攻击作为一种非常专业化的攻击手段,给网络安全管理者,带来严峻的考验.网络安全的战场已经从互联网蔓延到用户内部的网络, 特别是局域网.目前利用ARP欺骗的木马病毒在局域网中广泛传 ...

  6. Java 从入门到进阶之路(七)

    在之前的文章中我们介绍了一下 java 中的对象和类,接下来我们来看一下 Java 中的方法重载. 在显示生活中,我们肯定会遇到这样一个问题,那就是我们再商场买东西的时候在付账时的选择.如下 A:在收 ...

  7. Django学习之model进阶

    一 QuerySet 可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMIT 和OFFSET 子句.   >>> Entry.objects.al ...

  8. Java运算符及优先级(全)

    运算符是一种特殊的符号,用以表示数据的运算.赋值和比较等. Java运算符分为以下几种: • 算术运算符:+,-,*,/,%,++,-- • 赋值运算符:= • 扩展后的赋值运算符:+=,-=,*=, ...

  9. JS中的排序算法-冒泡排序解析

    冒泡排序算法 例子:10,8,9,6,4,20,5  从小到大排序 第一轮  1)10>8  交换数据 得到:8,10,9,6,4,20,5 2)10>9  交换数据 得到:8,9,10, ...

  10. e课表项目第二次冲刺周期第九天

    昨天完成了什么? 昨天,我查找了相关的资料,将数据库根据我们的课程信息进行了重新的设计,并将数据能够连上数据库,即在添加课程的界面,可以将添加的课程的信息,存储到数据库中,并且存储到课程表中,并注明是 ...