运维自动化 第四章 模块

file模块(对文件或目录的操作)

参数:
group  #属组
mode  #权限
owner #属主
path   #路径
    state = link  #软连接
    state = hard #硬链接
state
    directory     目录
    file       没有就不创建
    touch    空文件 
    absent  删除
    link      软连接
    hard     硬链接

 简单实例:

#创建目录,并指定属主为alex
ansible web -m file -a "path=/alex5 state=directory owner=alex" 

#创建文件并指定权限为755
ansible web -m file -a "path=/tmp/wusir.txt state=touch mode=755"

#创建软连接,链接的是自己的文件
ansible web -m file -a "path=/tmp/wusir.txt state=link src=/var/log/cron"

#删除软连接
ansible web -m file -a "path=/tmp/wusir.txt state=absent"

#删除文件夹
ansible web -m file -a "path=/tmp/alex5 state=absent"

补充:

  软连接 快捷方式 ln -s  源文件修改软连接修改  源文件删除软连接失效   可以跨分区

  硬链接 硬盘的位置  ln  源文件修改硬链接修改  源文件删除硬链接不变  不可以跨分区

  复制   开辟新空间   cp    源文件修改cp的不变     源文件删除不变      可以跨分区

fetch模块(拉取远程主机的文件,创建一个以ip地址或主机名为名称的目录,并且保留原来的目录结构)

参数:
dest :目标地址
src : 源地址

 实例:

#拉取远程主机的文件,并以主机ip地址或者主机名为目录,并且保留了原来的目录结构
ansible web -m fetch -a "src=/var/log/cron dest=/tmp"

 yum包(安装linux的软件包)

1.yum跟rpm有什么关系,有什么区别?
rpm  需要手动解决依赖关系
yum  自动解决依赖关系

2.yum源怎么配置
[epel] #名称
name=Extra Packages for Enterprise Linux 7 - $basearch  #全名或者描述信息
baseurl=http://mirrors.aliyun.com/epel/7/$basearch  # 源url地址
failovermethod=priority
enabled=1  #是否启用,1启用,0不启用
gpgcheck=0  #是否检验key文件,0不校验 1校验
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
3.yum怎么安装包组
 yum grouplist #查包组信息

 参数:

disablerepo  #禁用某个源
enablerepo  #启用某个源
name=redis     #包名
name=@development tools #包组加@ state install #安装 remove,absent #卸载

 实例:

#安装python2-pip软件包
ansible web -m yum -a "name=python2-pip"

#安装多个包
ansible web -m yum -a "name=python2-pip,redis"

#安装包组
ansible web -m yum -a "name=@Development Tools"

#卸载
ansible web -m yum -a "state=absent name=redis"

 pip包(安装python的包)

#将本地环境导出
pip freeze > a.txt

#安装所有的包
pip install -r a.txt

#查看所有的包
pip list 

#卸载
pip uninstall flask 

#下载包
python setup.py build
python setup.py install

 参数:

chdir  #切换目录
name  #包名
requirements  #导出的文件
virtualenv  #虚拟环境

service模块(启动服务)

启动 
centos7: systemctl start redis 
centos6: service redis start 

开机自启动
centos7: systemctl enable redis 
centos6: chkconfig redis on 

init 
    0关机 1单用户 3命令行 5图形界面 6重启
ps -ef|grep redis #查进程
ss 
    -t tcp
    -u udp
    -n 以端口形式显示
    -l  显示所有已经启动的端口
    -p  显示pid

 默认的端口号

默认端口号

ssh 22
http 80
https 443
mysql 3306
redis  6379
mongodb 27017
oracle  1521
tomcat  8080
windows远程桌面  3389
ftp  20 21
django  8000
flask  5000

 参数:

enabled  #开机启动
name #服务名称
state 
    started #启动
    stoped  #停止
    restarted #重启
    reloaded #重新加载,平滑重启

 实例:

#启动
ansible web -m service -a "name=redis state=started"

#关闭
ansible web -m service -a "name=redis state=stopped"

#设置开机自启
ansible web -m service -a "name=redis enabled=yes"

cron模块(定时任务)

crontab
*   *   *   *   *   job
分  时  日 月  周  任务
取值范围
0-59  0-23  1-31  1-12  0-7

#每隔三分钟执行一次job
*/3  *  *  *  *  job

#10-12点第4分钟执行,包括12点
4 10-12 * * * job
分钟最好不要用*
分钟最好不要用*
分钟最好不要用*
分钟最好不要用*
尽量写绝对路径

应用场景:
    备份
    同步时间
    删除文件
-e  编辑
-l   查看 
-r   删除

 参数:

day 天
disabled  禁用crontab  表现形式加#
hour  小时
job  任务
minute  分钟
month  月
name 名字,描述信息
user  用户
weekday 周
添加时名字必须不同,如果不加name,默认名称为None

 实例:

#在12分的时候创建文件
ansible web -m cron -a "name=touch_file minute=12 job='touch /etc/x.txt'"

#删除
ansible web -m cron -a 'name=touch_file state=absent'

#注释
ansible web -m corn -a "minute=touch_file name=touchfile job='touch /etc/x.txt disabled=yes'"

#删除名称为None的计划任务
ansible web -m corn -a "name=None state=absent"

 user

参数:

group 属组
groups 附加组
home 设置家目录
name 用户名
remove 删除用户并删除用户的家目录
shell 用户登录后的shell
system 系统用户
uid 用户的id
password 设置用户的密码
state 状态

 实例:

#创建用户,并指定用户的shell,家目录,uid,以及附加组
ansible web -m user -a "name=alex10 shell=/sbin/nologin home=/opt/alex10 uid=3000 groups=root" 

ansible web -m user -a "name=alex11 shell=/sbin/nologin home=/opt/alex11"

#创建系统用户
ansible web -m user -a "name=alex12 system=yes" 

#删除用户,单不删除家目录
ansible web -m user -a "name=alex12 state=absent" 

# 删除用户并删除用户的家目录
ansible web -m user -a "name=alex11 state=absent remove=yes" 

 如何查看用户是否被创建

tail /etc/passwd
tail /etc/shadow
id alex

 useradd

参数
-d 设置用户家目录前面是家目录,后面是用户
useradd -d /opt/alex2 alex2 -g 设置用户的属组,前面是那个属组,后面是那个用户
useradd -g alex2 alex3 -G 设置附加组 ,前面的是那些附加组,后面是用户
useradd -G alex2,root alex4 -r 系统账号 ,系统账号没有家目录
useradd -r alex5 -s 设置用户登录后的shell
useradd -s /sbin/nologin alex8 -u 设置用户的Id
useradd -u 2000 alex9
设置了用户的id以后,在设置用户则从最大的id开始往后数

 用户的分类: 

  超级用户: root

  普通用户

    系统用户 :  启动一些服务或者进程,不能登录  1-999 centos7 1-499 centos6 从大到小

    登录用户 :  可以登录的用户   1000-65535 centos7 500-65535 centos6  从小到大

userdel  

  userdel alex8  默认不删除家目录

  -r 删除用户的家目录

  userdel -r alex9  删除用户并删除用户的家目录

group

groupadd  

  -g 设置id 

  -r  系统组

超级管理员组 root 0

普通组
系统组 1-999 centos7 1-499 centos6 从大到小 
登录用户组 1000-65535 centos7 500-65535 centos6
从小到大
查看
tail /etc/group
groupadd -g 3000 wusir10
groupadd -r wusir11

 参数:

gid  组id
system  系统组
name 名称

 实例:

#创建系统组
ansible web -m group -a "name=wusir1 system=yes gid=5000"

#创建普通的组
ansible web -m group -a "name=susir2"

#删除组
ansible web -m group -a "name=susir1 state=absent"

  

猜你喜欢

转载自www.cnblogs.com/zty1304368100/p/10821833.html
今日推荐