5.file模块(对文件或目录的操作,在远程机器上创建)
参数: group #属组 mode #权限 owner #属主 path #路径
src存在的时候 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的不变 源文件删除不变 可以跨分区
6.fetch模块(拉取远程主机的文件,创建一个以ip地址或主机名为名称的目录,并且保留原来的目录结构)
参数: dest :目标地址 src : 源地址
实例:
#拉取远程主机的文件,并以主机ip地址或者主机名为目录,并且保留了原来的目录结构 ansible web -m fetch -a "src=/var/log/cron dest=/tmp"
7.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怎么安装包组
- name@包组名称 yum grouplist #查包组信息
yum grouplistall
yum search #查看
yum makecache #重建缓存
yum clear #清空缓存
参数:
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"
8. 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 #虚拟环境
9.service模块(启动服务,前提:在命令行可以通过service或者system启动服务)
启动前提: 提供启动文件
启动 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"
10.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"
11.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 删除用户并删除用户的家目录
12.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 名称
state 状态
实例:
#创建系统组 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"