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. 从ASP.Net Core Web Api模板中移除MVC Razor依赖项

    前言 :本篇文章,我将会介绍如何在不包括MVC / Razor功能和包的情况下,添加最少的依赖项到ASP.NET Core Web API项目中. 一.MVC   VS WebApi (1)在ASP. ...

  2. @Data注解getset不起作用

    在idea的setting安装Lombok插件,重启idea

  3. shell判断文件目录或文件是否存在

    1.文件描述符 -e 判断对象是否存在 -d 判断对象是否存在,并且为目录 -f 判断对象是否存在,并且为常规文件 -L 判断对象是否存在,并且为符号链接 -h 判断对象是否存在,并且为软链接 -s ...

  4. Jedis 常用API使用

    使用Jedis操作Redis常用的API <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <depen ...

  5. mysql初识笔记

    一.初始mysql mysql介绍: mysql版本: 版本号=3个数字+1个后缀 mysql-5.0.9-beta 5 0 9 Beta 主版本号 发行级别 发行稳定级别 发行系列 发行系列的版本号 ...

  6. python句柄部分操作

    ```python3# 通过窗口类名.窗口标题获取控件句柄hwnd = win32gui.FindWindow("ClassName", "TitleName" ...

  7. EF Core设置字段默认时间

    ---恢复内容开始--- 在EF的官方文档上只提到了用 Fluent API来设置默认值. 但是我们日常开发中,会把公用字段都写成基类.比如行创建时间 在需要默认时间的字段加上一个特性 [Databa ...

  8. 智慧金融时代,大数据和AI如何为业务赋能

    前言:宜信技术人物专访是宜信技术学院推出的系列性专题,我们邀请软件研发行业的优秀技术人,分享自己在软件研发领域的实践经验和前瞻性观点. 第一期专访我们邀请到宜信科技中心AI中台负责人王东老师,从大数据 ...

  9. Embarrassment

    I don't know what I did wrong, why do I take care of me? I did something wrong before, your parents ...

  10. repr() Vs str()

    在python中,将对象转换为字符串有两个内建函数: str Vs repr .str 是一个友好的,人们可读的字符串.repr 应该包含关于对象内容的详细信息(有时他们会返回相同的内容,例如整数). ...