ansible批量部署模块(二)
回顾:
Ansible:
无需客户端程序
只要有SSH
模块化
ansible帮助工具
ansible-doc 模块名
ansible-doc 模块名 -s 列出该模块的所有选项
ansible-doc -l 列出所有模块
6.group组模块
- gid
设置组id
= name
需要管理的组名
- state
执行状态,absent 删除
present 创建(默认) 例1:创建组名www,并设置gid为666
[root@m01 ~]# ansible oldboy -m group -a "name=www gid=666" 例2:修改ww组的gid为888
[root@m01 ~]# ansible oldboy -m group -a "name=www gid=888" 例3:删除www组
[root@m01 ~]# ansible oldboy -m group -a "name=www gid=888 state=absent"
7.user用户模块
= name
用户名
- uid
uid
- group
gid或groupname
- state
执行状态,absent 删除
present 创建(默认)
- shell
登录shell,/bin/bash(默认),/sbin/nologin
- create_home
创建用户时,是否创建家目录
- password
用户密码,不能使用明文,需要使用openssl加密后的密码
例1:创建一个用户oldboy,指定uid ,gid ,并设置密码为123
注意:password不能使用明文,需要加密,password的加密值需使用双引号
# -1使用MD5进行加密 -stdin 非交互式
[root@m01 ~]# echo "" | openssl passwd - -stdin
$$ByoqasKh$lGSK41WgqAYJ/Ha9K3Yd00
[root@m01 ~]# ansible oldboy -m user -a 'name=oldboy uid=6000 group=666 password="$1$ByoqasKh$lGSK41WgqAYJ/Ha9K3Yd00"' 例2:创建一个程序用户www,指定uid666 gid666 不让登录 不创建家目录
[root@m01 ~]# ansible oldboy -m user -a "name=www uid=666 group=www create_home=no shell=/sbin/nologin
8.file模块
= path
目标文件路径
copy模块的dest
其他模块的name
- src
源文件路径
- owner
属主
- group
属组
- mode
权限
- state
absent 删除
directory 创建目录
file 修改文件属性(默认)
touch 创建文件
link hard 链接
- recurse
递归
recurse=yes
例1:创建目录/data和/backup,属主666,属组666
[root@m01 ~]# ansible oldboy -m file -a "path=/data owner=666 group=666 recurse=yes state=directory"
[root@m01 ~]# ansible oldboy -m file -a "path=/backup owner=666 group=666 recurse=yes state=directory" 例2:创建文件/etc/rsync.passwd,权限600
[root@m01 ~]# ansible oldboy -m file -a "path=/etc/rsync.passwd mode=600 state=touch" 例3:对/etc/hosts做个软链接到/tmp/hosts
[root@m01 ~]# ansible oldboy -m file -a "src=/etc/hosts path=/tmp/hosts state=link" 总结:file模块仅适合创建目录,修改所属和权限,创建链接;除开这些操作的其他文件管理都通过copy模块实现
9.mount挂载模块
= path
挂载点
- src
需要挂载的设备
- fstype
挂在设备的文件系统
iso9660 光驱
ext4
xfs
nfs
cifs samba的共享文件系统
ntfs windows磁盘文件系统
- opts
挂载属性
noatime
noexec
nosuid
= state
挂载动作
present # 开机挂载,仅将挂载配置写入/etc/fstab
mounted # 挂载设备,并将配置写入/etc/fstab
unmounted # 卸载设备,不会清除/etc/fstab写入的配置
absent # 卸载设备,会清理/etc/fstab写入的配置
例1:通过nfs实现网络文件共享
)安装nfs
ansible nfs -m yum -a "name=nfs-utils state=installed"
)启动服务
ansible nfs -m service -a "name=rpcbind state=started"
ansible nfs -m service -a "name=nfs state=started"
)修改配置文件
方法一:在m01上创建配置文件,然后通过copy模块推送给nfs(建议使用)
mkdir -p /server/conf
echo '/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)' > /server/conf/exports
ansible nfs -m copy -a 'src=/server/conf/exports dest=/etc/'
方法二:在m01上直接使用copy模块,推送文件内容
ansible nfs -m copy -a 'content="/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)" dest=/etc/exports'
)创建目录用户,并修改所属
ansible nfs -m group -a "name=www gid=666"
ansible nfs -m user -a "name=www uid=666 group=666 create_home=no shell=/sbin/nologin"
ansible nfs -m file -a "path=/data state=directory owner=666 group=666 recurse=yes"
)重载配置文件
ansible nfs -m shell -a "exportfs -arv" 或 ansible nfs -m service -a "name=nfs state=restarted"
ansible nfs -m shell -a "showmount -e"
)在web上挂载nfs的共享目录
ansible web -m yum -a "name=httpd state=installed"
ansible web -m service -a "name=httpd state=started"
ansible web -m mount -a "src=172.16.1.41:/data path=/var/www/html state=mounted fstype=nfs"
ansible nfs -m copy -a "content='xiao ming is your father' dest=/data/index.html"
10.script
).写个脚本,创建用户,并配置密码
[root@m01 scripts]# cat .sh
#!/bin/bash
useradd oldgirl
echo | passwd --stdin oldgirl &> /dev/null && echo 'create passwd success'
).运行脚本
ansible all -m script -a "/server/scripts/1.sh"
11.cron
- name
描述,必须要写,如果不写,默认为None,会导致无法指定删除某条计划任务
- job
任务,命令
- state
执行状态,absent 删除
present 创建(默认)
- minute
Minute when the job should run ( -, *, */, etc )
[Default: *]
- hour
Hour when the job should run ( -, *, */, etc )
[Default: *]
- day
Day of the month the job should run ( -, *, */, etc )
(Aliases: dom)[Default: *]
- weekday
Day of the week that the job should run ( - for Sunday-Saturday, *, etc
)(Aliases: dow)[Default: *]
- month
Month of the year the job should run ( -, *, */, etc )
[Default: *]
例子:每天的凌晨1点执行rsync_backup.sh
[root@m01 ~]# ansible all -m cron -a "name='Rsync backup' hour=1 minute=0 job='/bin/sh /server/scripts/rsync_backup.sh &> /dev/null'"
ansible批量部署模块(二)的更多相关文章
- Ansible批量部署工具
Ansible:自动化运维工具 你需要在一台机器上yum install 一个包,这时候有一个需求,比如现在有5台机同时需要装apache这个包,那么100台呢,ssh上去就太慢了,这时候就借助到了a ...
- ansible 批量部署准备工作
Ansible:自动化运维工具,基于Python开发 功能{ 批量系统配置 批量程序部署 批量运行命令等等 } 准备工作: 一.操作主机安装epel源 和 ansible工具 yum -y insta ...
- 利用ansible批量部署zabbix-agent
应用环境:Linux运维工作少不了一个好的监控,zabbix就是目前比较好的一款开源监控软件. 监控类型多种多样,如果不介意或者系统支持安装,那么agent方式是首选. 当主机数量较多时,可以利用相关 ...
- ansible批量部署(一)
自动化运维工具shell脚本/Ansible(无客户端)/Saltstack(master-minion) 回顾服务器部署的流程:买云主机->环境部署->软件部署->配置部署-> ...
- ansible批量部署mysql
1.1 将mysql软件包同步到客户端服务器,做安装前期准备 Ps:mysql安装包线拖到ansible服务端的/ansible/roles/mysql/files目录下 vim /ansible/r ...
- ansible批量部署tomcat
1.1 构建目录结构 此操作是安装nginx+mysql+tomcat+db的目录结构,可以参考一下,不错~ mkdir -p /ansible/roles/{nginx,mysql,tomcat,d ...
- Ansible批量部署工具的安装
1.系统安装gcc,以及python2.6以上(2.6.8): 第一种比较简单的安装方法: 1)直接yum install -y ansible; 2)然后更改配置,/etc/ansible/ansi ...
- ansible批量部署nginx
1.1 将nginx的安装包,和安装脚本copy到客户端,并安装脚本 vim /ansible/roles/nginx/tasks/main.yml - name: copy nginx_tar_gz ...
- Ansible安装部署以及常用模块详解
一. Ansible 介绍Ansible是一个配置管理系统configuration management system, python 语言是运维人员必须会的语言, ansible 是一个基于py ...
随机推荐
- ssm搭建,maven,javaConfig
基于java配置SSM,eclipse 新建maven,web项目 .... 项目结构: jar包 pom.xml spring和DispatcherServlet上下文,相当于web.xml pub ...
- C语言-浮点类型
C语言-浮点类型 浮点类型 在0的两侧有一小块区域,这个区域非常接近0,但是不等于0,是float(表达范围数量级10^-38^)或者double(达范围数量级10^-308^)无法表达的,而0是可以 ...
- Hadoop家族系统学习路线
本文主要介绍Hadoop家族产品,常用的项目包括Hadoop,Hive,Pig,HBase,Sqoop,Mahout,Zookeeper,Avro,Ambari,Chukwa,新增加的项目包括,YAR ...
- Nim游戏(尼姆博弈)
这里是尼姆博弈的模板,前面的博弈问题的博客里也有,这里单列出来. 有N堆石子.A B两个人轮流拿,A先拿.每次只能从一堆中取若干个,可将一堆全取走,但不可不取,拿到最后1颗石子的人获胜.假设A B都非 ...
- 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring CGLlB动态代理
JDK 动态代理使用起来非常简单,但是它也有一定的局限性,这是因为 JDK 动态代理必须要实现一个或多个接口,如果不希望实现接口,则可以使用 CGLIB 代理. CGLIB(Code Generati ...
- Java基础——HashTable源码分析
HashTable是基于哈希表的Map接口的同步实现 HashTable中元素的key是唯一的,value值可重复 HashTable中元素的key和value不允许为null,如果遇到null,则返 ...
- BUUCTF-[HCTF 2018]WarmUp
php中可以使用strpos函数与mb_strpos函数获取指定的字符串在别一个字符串中首次出现的位置,也可以使用它们判断一串字符串中是否包含别一个字符串. PHP strpos() 函数 查找 &q ...
- axios基础介绍
axios基础介绍 get请求要在params中定义,post要在data中定义.
- rabbitmq安装及简单demo练习
参考:https://my.oschina.net/loveorange/blog/3026473 安装参考链接: 1. 下载自己需要的rabbitmq_server(http://www.rabbi ...
- windows server 2012 ftp搭建
1.安装IIS的时候勾选ftp 2.创建ftp站点,先检查21端口是否开放 一定要勾选身份认证,匿名去掉,不然一直登陆不了,也不提示 一直点下一步, 遇到的坑,第一个:出现“打开ftp服务器上的文件夹 ...