1、ansible中的File模块python
file模块是对文件进行的操做mysql
file模块的一些参数 group #文件的属组 mode #文件权限 owner #文件属主 path #文件路径 state directory 目录 file touch 空文件 absent 删除 link 软链接 hard 硬连接 例子: ansible all -m file -a "path=/IT state=directory owner=it" 建立IT目录,并制定属主是it ansible all -m file -a "path=/tmp/IT.txt state=touch mode=777" 建立文件IT.txt 并指定权限 ansible all -m file -a "path=/tmp/cron src=/var/log/cron state=link" 建立软链接,链接是本身本机的文件前面的path是链接存放地址,后面的src是源文件地址 ansible all -m file -a "path=/tmp/cron state=absent" 删除软链接 ansible all -m file -a "path=/IT state=absent" 删除文件夹
补充知识linux
软链接 快捷方式 ln -s 源文件修改软链接修改 源文件删除软链接失效 能够跨分区
硬连接 硬盘的位置 ln 源文件修改硬连接修改 源文件删除硬连接不变 不能够跨分区
复制 开辟新空间 cp 源文件修改cp的不变 源文件删除不变 能够跨分区nginx
2、ansible中Fetch模块web
拉取远程主机的文件,并以主机IP地址或者主机名为目录,并保留了原来的目录结构redis
dest 目标地址 src 源地址 ansible all -m fetch -a "src=/var/log/cron dest=/tmp" 将全部被控机下 /var/log/cron 拉取到主控机下的 /tmp 下
3、ansible中Yum模块sql
1.yum和rpm有什么关系,区别是什么mongodb
yum的底层是rpm来执行的shell
区别:django
yum自动解决依赖关系,rpm须要手动解决依赖关系
2.被控机的yum源怎么配置
咱们要在其余的被控机器上好比安装redis怎么办
首先要将管控机上的yum的epel源复制到被管控机上 ansible all -m copy -a "src=/etc/yum.repos.d/epel.repo dest=/etc/yum.repos.d/epel.repo" 第二步在管控机上执行 yum.repos.d]# ansible all -m yum -a "name=redis"
第一步执行完就至关于配置完了被控机的epel源,而后执行第二部就安装完事了
咱们能够打开主控机中的 vi /etc/yum.repos.d/epel.repo 文件看下里面有啥,你会发现这几行代码:
[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
那么,yum模块怎么安装包组呢????
先看下有哪些参数:
disablerepo #禁用某个源 enablerepo #启用某个源 name #包名 state install #安装 remove #卸载 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 "name=nginx state=absent" #卸载 安装完成后能够执行 yum grouplist #查包组信息
4、Pip模块
先来熟悉下pip的命令
pip freeze > a.txt # 导出本地环境,固然个人名命有问题随便命名的 pip install -r a.txt #安装导出的全部的包 pip uninstall 包名 #卸载
pip模块的参数
chdir #切换目录 name #包名 requirements #导出的文件 virtualenv #虚拟环境
5、Service模块
Linux服务的命令是这样的
Linux服务命令 服务启动命令 centos 7 systemctl start redis centos 6 service redis start 开机自启动 centos 7 systemctl enaable redis centos 6 chkconfig redis on
以及一些默认端口号
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
Service模块一些参数
enaled #开机启动 name #服务名称 state started #启动 stopped #中止 restarted #重启 reloaded #重载(平滑重启) use 启动的用户
用法举个栗子
ansible all -m service -a "name=redis state=started" 将redis服务启动 ansible all -m service -a "name=redis state=stopped" 将redis服务关闭 ansible all -m service -a "name=redis enabled=yes" 设置开机自启动
6、cron定时任务模块
模块参数
day #天 disabled #禁用crontab,表现形式加# hour #小时 job #任务 minute #分钟 month #月 name #名字,任务描述 user #用户 weekday #周 任务名字name必须不一样不然不会执行,若是不加name默认为None
使用方法举个栗子
ansible all -m cron -a "minute=12 name=touchfile job='touch /tmp/IT.txt'" 建立文件 ansible all -m cron -a "name=touchfile state=absent" 删除任务 ansible all -m cron -a "minute=12 name=touchfile2 job='touch /tmp/IT2.txt' disabled=yes" #注释 ansible all -m cron -a "name=None state=absent" 删除名称为空的计划任务
7、User模块
linux命令关于user的
-d 设置用户家目录 useradd -d /opt/alex2 alex2 -g 设置用户的属组 useradd -g alex2 alex3 -G, --groups 附加组 useradd -G alex2,root alex4 -r, --system 系统帐号 useradd -r alex5 # 系统帐号没有家目录 -s, --shell #设置用户登陆后的shell useradd -s /sbin/nologin alex8 -u, --uid UID #设置用户的id useradd -u 2000 alex9 设置了用户的id之后,在设置用户则从最大的id开始日后数 用户分类 超级管理员 root 0 普通用户 系统用户 启动一些服务或者进程,不能登陆 1-999 centos7 1-499 centos6 从大到小 登陆用户 能够登陆的用户 1000-65535 centos7 500-65535 centos6 从小到大 userdel userdel alex8 默认不删除家目录 -r 删除用户的家目录 userdel -r alex9 删除用户并删除用户的家目录
User模块的一些参数以及用法例子
group #属组 groups #附加组 home #设置家目录 name #用户名 remove #删除用户并删除用户的家目录 shell #用户登录后的shell system #系统用户 uid #用户id
ansible web -m user -a "name=alex10 shell=/sbin/nologin home=/opt/alex10 uid=3000 groups=root" #建立用户,并指定用户的shell,家目录,uid,以及附加组 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" # 删除用户并删除用户的家目录
8、Group模块
Linux关于组的命令
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
Group模块
gid 组id system 系统组 name 名称 ansible web -m group -a "name=wusir10 system=yes gid=5000" 建立系统组 ansible web -m group -a "name=wusir11" 建立普通的组 ansible web -m group -a "name=wusir11 state=absent" #删除组