ansible(二)
2024-09-06 12:18:00
软件相关模块
yum
rpm和yum的区别
rpm:redhat package manager yum可以解决依赖关系
yum源配置
[epel]
name=Extra Packages for Enterprise Linux - $basearch #名字
baseurl=http://mirrors.aliyun.com/epel/7/$basearch #rpm源的地址,可以写http,https,ftp,Samba,file:
failovermethod=priority
enabled= # 是否开启,1代表开启,0表示关闭
gpgcheck= #是否校验签名,1代表校验,0表示校验
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
yum安装包组
yum grouplist # 查看包组信息
yum groupinstall # 安装包组
ansible yum
disablerepo #禁用源
enablerepo #启用源
name #包名
state install (`present' or `installed', `latest'), or remove (`absent' or `removed') 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
pip install 安装包
pip freeze > a.txt 将python的环境打包到文件中
pip install -r a.txt 安装文件中的包
pip list 查看所有的以安装成功的包
pip回顾
ansible web -m pip -a 'name=flask' # 安装flask模块
service
ps -ef|grep nginx #查看进程
ss -tnlp # 查看端口信息
systemctl start nginx # centos7
service nginx start # centos6
systemctl enabled nginx # centos7 开机自启动
chkconfig nginx on # centos6开机自启动
补充
ansible web -m service -a 'name=nginx state=started' # 启动nginx
ansible web -m service -a 'name=nginx state=stopped' # 关闭nginx
计划任务 cron
* * * * * job
分 时 日 月 周 任务
*/ * * * job 每隔两个小时
, * * * job 12点和13点
- * * * job 12点到17点
-/ * * ,,, 周1,周3,周6,周7 12点到17点每隔两个小时
crontab -e # 编辑计划任务
crontab -l # 查看计划任务
crontab -r # 删除计划任务
回顾
day 天
disabled 禁用
hour 小时
job 任务
minute 分钟
month 月
name 任务名字
weekday 周 ansible db -m cron -a 'minute=26 job="touch /tmp/xzmly.txt" name=touchfile' # 新建一个计划任务
ansible db -m cron -a 'name=touchfile state=absent' # 删除一个计划任务
ansible db -m cron -a 'minute=26 job="touch /tmp/xzmly.txt" name=touchfile disabled=yes' # 禁用计划任务,以#表示禁用
用户相关
user
用户:
管理员 root
普通用户
系统用户 不能登录 - centos7 - centos6
登录用户 可以登录 - centos7 - centos6
用户组:
管理员组 root
系统用户组 - centos7 - centos6
登录用户组 - centos7 - centos6 -d 指定用户的家目录
-g 指定用户的组
-G 执行用户的附加组
-s 指定登录后使用的shell
-r 创建一个系统组
useradd -r wusir 创建系统用户, 从999倒序
useradd -s /sbin/nologin alexsb 创建的是普通用户,从1000开始升序
useradd -d /opt/alexsb2 alexsb2 创建用户时指定用户的家目录
useradd -u alexsb6 # 创建用户并指定用户的uid
userdel alex 删除用户
userdel -r alexsb2 删除用户并删除用户的家目录 groupadd yuchao 创建用户组
groupdel yuchao 删除用户组
回顾
group 组
groups 附加组
home 家目录
name 用户名
password 密码
remove ?
shell 用户登录后使用的shell
system 创建一个系统用户
uid 用来指定用户的id
state 状态
ansible db -m user -a 'name=wulaoshi uid=4000 home=/opt/wulaoshi groups=root shell=/sbin/nologin' #创建一个用户,并指定用户的id,用户的家目录,用户的附加组,用户的shell
ansible db -m user -a 'name=wulaoshi state=absent' #删除用户但是不删除用户的家目录
ansible db -m user -a 'name=wulaoshi3 state=absent remove=yes' # 删除用户并删除用户的家目录
group
gid 组的id
name 组名
system 系统组
state
ansible db -m group -a 'name=wulaoshi system=yes' #创建系统组
ansible db -m group -a 'name=wulaoshi state=absent' # 删除组
ansible剧本
yaml
yaml:是一个变成语言(写配置的类似ini,xml)
字典:key: value
列表:-
后缀名:yaml、yml
ansible-playbook命令格式
执行顺序:从上往下
特性:幂特性 不管执行多少遍,结果都是一样的
ansible-playbook [options] playbook.yml [playbook2 ...]
-C, --check # 检查,白跑,干跑
-f FORKS, --forks=FORKS #用来做并发
--list-hosts # 列出主机列表
--syntax-check # 语法检查
配置文件(格式很严格)
# 简单用法
- hosts: web
tasks:
- name: creategroup
group: name=alex10
- name: cretaeuser
user: name=wusir10 # 需要传参
- hosts: web
tasks:
- name: create{{ user }}
user: name={{ user}}
第一种方式
ansible-playbook -e 'user=alexsb10' p2.yml
第二种方式
[db]
192.168.107.132 user=alexsb11
192.168.107.133 user=alexsb12
第三种方式
[db:vars] #表示组的参数
user=alexsb13
第四种方式
- hosts: db
vars:
- user: alexsb14
tasks:
- name: create{{ user }}
user: name={{ user}}
第五种方式
- hosts: db
tasks:
- name: sum
shell: echo +|bc
register: user
- name: createuser
user: name={{user.stdout}}
传参方式的优先级
-e > playbook vars > hosts文件
最新文章
- cocoapods卸载与安装的各种坑
- Linux Linux程序练习十六(进程间的通信信号版)
- ECharts图表中级入门之formatter:夜谈关于ECharts图表内的数据格式化方法
- BZOJ3515 : EvenPaths
- CSU 1060 Nearest Sequence
- C# 如何以参数的形式调用.exe程序
- Android开发之错误:elicpse运行时弹出Running Android Lint has encountered a problem failed, nullpointerexception
- Why Does Everyone Else Appear to Be Succeeding?
- nodejs+socketio+redis实现前端消息实时推送
- Windows下命令行连接mysql及导入sql文件
- 解决Java调用Azure SDK证书错误javax.net.ssl.SSLHandshakeException
- C++写时钟表
- Hive数据仓库笔记(三)
- ThreadLocal类的简单使用
- springboot 整合 redis
- Ddos 分布式拒绝服务 (报告)
- excel技巧--复制带excel侧边的表格
- FS210(cortex-A8)移植MT7601无线WIFI模块
- spring boot 服务 正确关闭方式
- 前端学习笔记之CSS过渡模块
热门文章
- 重启nova-scheduler服务,报错Login was refused using authentication mechanism AMQPLAIN
- 《Linux就该这么学》培训笔记_ch05_用户身份与文件权限
- javascript的立即执行函数
- mPython编程环境:Mu
- PowerBuilder学习笔记之1开发环境
- Win10 UEFI 系统安装教程
- 微信小程序路径表达式解析规则
- Django CBV和FBV
- Codeforces Round #584 (Div. 1 + Div. 2)
- Java学习:面向对象的三大特征:封装性、继承性、多态性之继承性