ansible中File模塊、Fetch模塊、Yum模塊、Pip模塊、Service模塊、Cron模塊、User模塊、Group模塊


一、ansible中的File模塊

  file模塊是對文件進行的操作

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"
刪除文件夾

補充知識

軟連接   快捷方式   ln -s   源文件修改軟連接修改 源文件刪除軟連接失效 可以跨分區
硬鏈接    硬盤的位置   ln    源文件修改硬鏈接修改 源文件刪除硬鏈接不變 不可以跨分區
復制    開辟新空間   cp    源文件修改cp的不變 源文件刪除不變 可以跨分區

 

二、ansible中Fetch模塊

  拉取遠程主機的文件,並以主機IP地址或者主機名為目錄,並保留了原來的目錄結構

dest    目標地址

src    源地址

ansible all -m fetch -a "src=/var/log/cron dest=/tmp"
將所有被控機下    /var/log/cron    拉取到主控機下的    /tmp    下

 

三、ansible中Yum模塊

  1.yum和rpm有什么關系,區別是什么

    yum的底層是rpm來執行的

  區別:

    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     #查包組信息

 

四、Pip模塊

  先來熟悉下pip的命令

pip freeze > a.txt    # 導出本地環境,當然我的名命有問題隨便命名的

pip install -r a.txt    #安裝導出的所有的包

pip uninstall 包名    #卸載

  pip模塊的參數

chdir    #切換目錄

name    #包名

requirements    #導出的文件

virtualenv    #虛擬環境

 

五、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"
設置開機自啟動

 

六、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"
刪除名稱為空的計划任務

 

七、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" # 刪除用戶並刪除用戶的家目錄

 

八、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" #刪除組

 

 

 

   

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM