ansible工具 (2)

Sets attributes of files.
一些知识 点准备:
- inode获取的是硬盘的地址
- id获取的是内存地址
- ln -s a.txt b.txt 创建软连接
- ln a.txt b.txt 创建硬链接
- 若源文件发生改变,软连接和硬链接生成的文件都会随着变化
参数:
- path 目标地址
- src 源地址
- state
- link 建立软连接
- file 建立文件
- directory 建立文件夹
- hard 建立硬链接
- touch 建立空文件
- absent 删除

ansible web -m file -a 'path=http://www.likecs.com/tmp state=directory' #建立文件夹 ansible db -m file -a 'path=http://www.likecs.com/tmp/a src=http://www.likecs.com/etc/f' #建立软连接 fetch

Fetches a file from remote nodes
参数:
- src 源地址
- dest 目的地址

ansible web -m fetch -a 'src=http://www.likecs.com/var/log/cron dest=http://www.likecs.com/tmp' #下载被控节点的文件,每台远程主机都会创建一个文件夹,保留原来的目录结构 yum

Manages packages with the `yum' package manager.
参数:
- disablerepo 禁用源
- enablerepo 启用源
- name 包名
- state
- install 安装
- remove 卸载

ansible web -m yum -a 'name=wget' # 安装wget ansible web -m yum -a 'name=python2-pip' # 安装python2-pip ansible web -m yum -a 'name=wget state=absent' # 卸载软件包 ansible web -m yum -a 'name="@Development Tools"' # 安装包组 pip

Manages Python library dependencies.
参数:
- chdir 切换目录后安装
- name 包名

ansible web -m pip -a 'name=flask' #安装flask service

Manage services.
ss -tnlp 查看端口信息
参数:
- name 服务名
- enable 自启动
- state
- started 开始
- stoped 结束
- restarted 重启
- reload 平滑加载

ansible web -m service -a 'name=nginx state=started' # 启动nginx ansible web -m service -a 'name=nginx state=stopped' # 关闭nginx cron

Manage cron.d and crontab entries.
参数:
- day 天
- disable 禁用
- hour 小时
- job 任务
- minute 分钟
- month 月
- name 任务名字
- weekday 周

ansible db -m cron -a 'minute=26 job="touch /tmp/a.txt" name=touchfile' # 新建一个计划任务 ansible db -m cron -a 'name=touchfile state=absent' # 删除一个计划任务 ansible db -m cron -a 'minute=26 job="touch /tmp/ay.txt" name=touchfile disabled=yes' # 禁用计划任务,以#表示禁用 user

Manage user accounts.
参数:
- group 组
- groups 附加组
- home 家目录
- name 用户名
- password 密码
- remove 删除
- system 创建系统用户
- uid 指定用户的uid
- state
- absent
- shell 用户登陆后的shell

absible web -m user -a 'name=cyz uid=6666 home=http://www.likecs.com/opt/cyz groups=root shell=http://www.likecs.com/sbin/nologin' #创建用户cyz uid为666 absible web -m user -a 'name=cyz state=absent' #删除用户但不删除家目录 absible web -m user -a 'name=cyz state=absent remove=yes' #删除用户并删除家目录 group

Add or remove groups.
参数:
- gid 组id
- name 组名
- system 系统组

ansible -m group -a 'name=cui system=yes' #创建cui系统组 ansible -m group -a 'name=cui state=absent' #删除cui用户组 关于user和group的一些知识点

用户:
- 管理员 root uid为0
- 普通用户
- 系统用户 不能登陆 uid为1-999(centos7)
- 登陆用户 可以登录 uid为1000-65535(centos7)
用户组:
- 管理员组 root 0
- 系统用户组 1-999
- 登陆用户组 1000-65535

useradd - -r 创建系统用户 - -s 创建普通用户 - -d 创建用户时指定家目录 - -g 创建用户时指定用户组 - -G 创建用户时指定用户的执行组 - -u 创建用户时指定用户uid userdel - -r 删除用户并删除用户的家目录(默认只删除用户) groupadd 创建用户组 - r 创建系统用户组 groupdel 删除用户组 关于计划任务的一些补充

crontab命令
- -e 编辑计划任务
- -l 查看计划任务
- -r 删除计划任务
计划任务的书写

* * * * * job 分 时 日 月 周 任务 0 */2 * * * job #每隔两个小时执行任务 0 12,13 * * * job # 12点和13点执行任务 0 12-17 * * * job #12-17点执行任务 0 12-17/2 * * * job #12-17点每隔两小时执行任务 关于pip的一些补充 pip install package #安装包 pip freeze >a.txt #导出环境 pip install -r a.txt #根据环境文件安装包 pip list #查看已经安装成功的包 ansible剧本(playbook)

剧本是ansible的配置和部署语言,它是由yaml编写的,用来描述对远程机器执行的策略或步骤。

yaml的语法

yaml是一种编写配置文件的编程语言,常见的配置文件后缀有.ini、.xml等,
由yaml编写的配置文件的后缀是.yaml 或.yml。

书写规范

不要使用tab,两个空格代表一个缩进

':'后要加一个空格

'-' 后要加一个空格

变量使用{{}}表示

列表的所有元素均以'-'+空格开头

字典key和value以:分开

- hosts: web tasks: - name: creategroup group: name=cyz - name: createuser user: name=cui 变量的传参方式

通过命令行传递变量

ansible-playbook -e 'user=cui' a.yml

在hosts文件中声明,有两种方法。

[web] 192.168.13.25 user=cui 192.168.22.231 user=cyz [web:vars] user=cui

在剧本中声明

- hosts: db vars: - user: cui tasks: - name: create{{ user }} user: name={{ user}}

使用register

- hosts: web tasks: - name: reg shell: echo 'cui' register: user - name: createuser user: name={{user.stdout}}

传参的优先级为:命令行>剧本>hosts文件

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwzfdd.html