自动化运维工具
shell脚本/Ansible/saltStack
自动化运维:
批量部署重复的工作
Ansible
无需客户端程序
只需要SSH
模块化
Ansiblechan常用模块
1.command
执行命令
2.shell
执行命令
3.yum
软件包管理
4.copy
文件管理
5.service
服务管理
##########################################
ansible模块
1.ansible帮助工具
ansible-doc 模块名称 查看该模块的帮助文档
ansible-doc 模块名 -s 列出该模块所以的选项
ansible -l 列出所以模块
2.group模块
– gid 设置组id
– name 需要管理组的名称
– state 执行状态,absent删除,present创建(默认)
1.实例创建组名a,gid等于1111
[root@web ~ ]#ansible web -m group -a "name=a gid=1111"
2.实例创建组名a,gid改变为1112
[root@web ~ ]#ansible web -m group -a "name=a gid=1112"
3.实例创建组名a,gid改变为1112,删除组a
[root@web ~ ]#ansible web -m group -a "name=a gid=1112"
3.user模块
– name - 用户名
– uid - uid
– group - gid或者groupname
– state - 执行状态,absent删除、present创建(默认)
– shell - 登录shell,/bin/bash(默认),/sbin/nologin/
– create_home 创建用户时,是否创建家目录 create_home=no
– password -用户密码,不能使用明文,需要使用openssl加密后的密码,需要使用双引号
实例1:创建一个用户oldboy1,指定uid 111111,gid 1111,并设置密码为123
使用openssl工具输出加密后的密码
[root@ansible-40-155 ~]#echo "123"| openssl passwd -1 -stdin
$1$nzfcZCPp$dnrwx.5nXR9lLvl8XWhqm1
创建用户oldboy1
[root@ansible-40-155 ~]#ansible web -m user -a "name=oldboy1 uid=111111 group=1111 password='$1$nzfcZCPp$dnrwx.5nXR9lLvl8XWhqm1'"
实例2:创建一个程序用户www,指定uid 666,gid 1111 不让登陆 不创建家目录
[root@ansible-40-155 ~]# ansible web -m user -a "name=www uid=666 group=a shell=/sbin/nologin create_home=no"
4.file
– path 目标文件路径、copy模块的dest、其他模块的name
– src 源文件路径
– owner 属主
– group 属组
– mode 权限
– state
absent 删除
direcroty 创建目录
file 修改文件属性(默认)
touch 创建文件
link hard 链接
– recurse
递归
recurse=yes
举例1:创建目录/root/data1,属主root,属组root
[root@ansible-40-155 /]# ansible web -m file -a "path=/root/date1 owner=root group=root recurse=yes"
举例2:创建文档/etc/rsync.password,权限600
[root@bogon etc]# ansible web -m file -a "path=/etc/rsync.password -owner=root group=root mode=600 state=touch"
举例3:删除/etc/rsync.password的文件
[root@ansible-40-155 /]# ansible web -m file -a "path=/etc/rsync.password state=absent"
总结:file模块仅适合创建目录,修改所属和权限,创建链接,除开这些操作的其他文件管理都通过copy模块实现,copy模块详细可以看我前一个博客。